nullPointerException应用程序最小化长时间后崩溃

时间:2015-03-03 17:34:53

标签: java android nullpointerexception minimize

有名为“Configs.java”的类包含:

    public Contect context;
    public Activity currentActivity;

On Global Class命名为“App.java”:

    public static Configs configs = new Configs();

在主要活动Java类Oncreate上:

    App.configs.context = getApplicationContext();
    App.configs.currentActivity = this;

关于产品活动Java类Oncreate(主要活动未完成且必须在后台工作):

    App.configs.currentActivity = this;

经过长时间最小化后,它显示产品活动Java类的Bellow Line错误:

    App.configs.currentActivity = this;

的NullPointerException

无法使用“Bundle savedInstanceState”因为它的活动有效

2 个答案:

答案 0 :(得分:0)

尝试将此代码移至onResume()而不是onCreate(),并查看错误是否仍然存在。

答案 1 :(得分:0)

在Android上使用静态变量并不好。 This post解释说Android很可能会杀死你的应用程序(杀死你的应用程序实例,因此当你的应用程序被重新创建并且类加载器重新实例化你的vars时静态变量变为null)以节省内存。该帖子还提到了Saving Activity state in Android,它提供了另一种保存捆绑包的方法。

无论如何,如果您需要快速解决方案,请将您的Configs类设为单例,并使用getter和setter而不是将其公开。让getter检查你的单例是否为null,在这种情况下,实例化一个new并返回它。你不会获得NPE,但它很危险,因为它不会恢复以前的状态。