可以在应用程序生命周期中更改应用程

Eug*_*ene 15 android

我可以依赖声明应用程序Context在应用程序生命周期中不会发生变化吗?如果我context使用单件模式存储某个地方然后在我需要的任何地方使用该怎么办?

Jon*_*n O 15

首先回答你的第二个问题:如果你需要在单身中存储一些状态,那么你可以使用Android Application类,你Application就成了你的单身人士(它也是一个Context).没有必要存储它.

关于第一个问题,关于是否Context可以在运行时更改:与您的其他问题相关,我认为我们可以通过查看ContextWrapper.attachBaseContext:

 protected void attachBaseContext(Context base) {
     if (mBase != null) {
         throw new IllegalStateException("Base context already set");
     }
     mBase = base;
 }
Run Code Online (Sandbox Code Playgroud)

所以,是的,你可以依靠它; 它无法改变,如果你尝试,它将抛出一个IllegalStateException.

  • 如果应用程序被杀死,您将无能为力,因为您也被杀死了。您是否需要在停止和重新启动的应用程序中保留数据?您可能希望为此使用共享首选项。 (2认同)

dev*_*com 6

Android Application类是用于存储应通过应用程序生命周期阶段跟踪的信息的单例.您可以在手册中查看此课程的说明 - http://developer.android.com/reference/android/app/Application.html