以下哪种方式是获取应用的实例更合适正确的方式来获得应用的实例中的Android
在Application.onCreate初始化静态字段(),并提供给它
静态访问public class MyApplication extends Application { private static MyApplication sInstance; @Override public void onCreate() { super.onCreate(); sInstance = this; } public static MyApplication getInstance() { return MyApplication.sInstance; } } public class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { MyApplication application = MyApplication.getInstance(); } }
创建这需要上下文作为PARAM静态方法和铸造的文脉,所有MyApplication
public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); } public static MyApplication getInstance(Context context) { return ((MyApplication) context.getApplicationContext()); } } public class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { MyApplication application = MyApplication.getInstance(context); } }
初始化的路上,我不明白这里的一件事。如果你真的想在'BroadcastReceiver'中设置'Context',那么'onReceive(Context context,...)'已经提供了第一个参数。使用那个。 –
我从来没有见过方式2,但它对我没有意义,因为如果你有一个上下文,你可以做getApplicationContext –