当全局静态变量被杀死时重新启动app

时间:2013-05-05 01:27:55

标签: android variables crash global restart

我的应用程序中有许多全局最终常量。我在应用程序启动期间从json文件填充这些常量。正如许多人所推荐的,我使用应用程序类将全局变量保存在内存中。但有时候,在关闭应用程序并使用其他应用程序然后回到我的应用程序后,它会崩溃。我理解这是因为系统杀死了进程,因此这些静态变量会从内存中丢失。建议的解决方案是使用sharedpreferences或其他持久存储方法来存储这些全局变量。但我需要一个快速简便的解决方案来“修复”这个问题。例如,如果系统终止进程(当应用程序在后台运行时)并且用户稍后返回应用程序,那么强制重新启动应用程序的最简单方法是什么?我希望我的问题很明确。

提前致谢

汤姆

2 个答案:

答案 0 :(得分:1)

  1. 正如Kai所说,即:

    public class MyApplication extends Application {
    
        @Override
        public void onCreate(){
            super.onCreate();
            initVariables();
        }   
    }
    
  2. 或使用访问者:

    public class MyApplication extends Application {
    
        MyVar var;
        public MyVar getVar(){
            if(var == null){
                initVariables();
            }
            return var;
        }
    

    }

答案 1 :(得分:0)

一旦您的应用暂停(用户不可见),规范 Android系统可以简单地杀死您的应用所处的进程,而无需任何其他回调,因此您要做的就是播放反对系统行为。

如果将这些变量保存在Application类中,那么只需在加载Application类时重新加载这些变量即可。