您可以将 Activity A 的上下文保存在 Application 类中,该类充当全局单例。
public class ApplicationController extends Application {
private static ApplicationController _appCtrl;
private Context mActivityAContext;
public static ApplicationController getAppCtrl()
{
return _appCtrl;
}
public void setContextForActivityA(Context context)
{
mActivityAContext = context;
}
public Context getContextForActivityA()
{
return mActivityAContext;
}
public void onCreate()
{
// Initialize the AppController class
super.onCreate();
ApplicationController._appCtrl = this;
}
}
现在您可以在 setter 方法中为活动 A 设置上下文,并通过以下方式从应用程序中的任何位置获取它:
ApplicationController.getContextForActivityA();
但是,当您将 Activity 上下文传递给其他 Activity 时,要非常小心内存泄漏。见链接文字