在非活动中需要上下文

时间:2014-06-02 09:45:01

标签: java android android-intent

我有一个MainActivity,一个名为FailedPasswordHandler的类和一个CameraHandler。 FailedPasswordHandler实现DeviceAdminReceiver。现在我想在FailedPasswordHandler类中创建一个CameraHandler对象,但它需要一个context参数。如何将此上下文放入我的FailedPasswordHandler类?

这就是我在MainActivity中所拥有的:

Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
ComponentName deviceAdmin = new ComponentName(MainActivity.this, FailedPasswordHandler.class);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, deviceAdmin);
startActivityForResult(intent, 1);

我想在上面的意图启动的FailedPasswordHandler类中创建一个像这样的CameraHandler对象:

ch = new CameraHandler(this);
ch.initializeCamera();

' this'参数是MainActivity。

3 个答案:

答案 0 :(得分:1)

我喜欢使用自定义Application类来处理这个问题。例如:

public class Helper extends Application {

    private Context mContext;

    public void onCreate() {
        super.onCreate();
        mContext = this;
    }

    public Context getContext() {
        return mContext;
    }
}

这样,您可以在每次需要时获取应用程序的上下文。

答案 1 :(得分:0)

您可以使用getContext函数创建单例应用程序类,该函数将返回应用程序上下文。但是如果你需要一个活动上下文,你可以将它作为参数传递给构造函数。

答案 2 :(得分:0)

如果要在同一个Activity中创建一个CameraHandler对象,可以像这样传递它:

ch = new CameraHandler(MainActivity.this);
ch.initializeCamera();

否则,您必须将参数Context传递给其他类。