创建一个扩展活动的实用程序类

时间:2014-01-12 13:37:47

标签: java android

在开发应用程序时,当我需要在不扩展Activity的类中执行某些操作(需要上下文类型为Activity)时,我遇到了很多次。

例如:创建一个AlarmManager事件,创建一个广播或操纵系统服务。

创建一个静态活动是否是一个好主意,它将作为一个utillity类来执行操作?

它的好处是可以从整个应用程序类访问它。

其他我发现我的自我复制代码从一个活动到另一个活动。

2 个答案:

答案 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对象本身也是如此。