在开发应用程序时,当我需要在不扩展Activity的类中执行某些操作(需要上下文类型为Activity)时,我遇到了很多次。
例如:创建一个AlarmManager事件,创建一个广播或操纵系统服务。
创建一个静态活动是否是一个好主意,它将作为一个utillity类来执行操作?
它的好处是可以从整个应用程序类访问它。
其他我发现我的自我复制代码从一个活动到另一个活动。
答案 0 :(得分:2)
public class MyApplication extends Application {
public static MyApplication instance = new MyApplication();
private static Context context;
@Override
public Context getApplicationContext() {
// TODO Auto-generated method stub
return super.getApplicationContext();
}
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
context = this;
}
public static Context getContext() {
return context;
}
}
您只需MyApplication.getContext();
将此标记添加到AndroidManifest.xml中,以便在应用程序启动时初始化此类。
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:name="com.example.application.MyApplication"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
答案 1 :(得分:1)
确保这些来电需要Activity
,而不是Context
。我相信您提到的案例只需要Context
,这在活动之外很容易获得。例如,Android Service
派生自Context,Application
对象本身也是如此。