全局变量有时变为空

时间:2014-03-18 17:54:19

标签: android

我在我的基础库中声明了一个扩展Application的变量。

变量是静态的,我可以设置它并正确访问它。但是在某些设备上有时会为空。

public class Application extends android.app.Application {

public static ArrayList<String> nextPage;


@Override
public void onCreate() {
    super.onCreate();
      ...
    }
}

<application
            android:name="Application"
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/Theme.MyTheme" >
      ...

我这样引用它:Application.nextPage

我正在使用bug sense,我发现有30个错误,其中此变量为null。它只是很少发生,因为该应用程序每天有成千上万的用户,而且这个错误本周只发生了30次。

有人知道这样的问题或可能导致什么问题吗?

问题设备:

SCH-I605 19%     3
SM-N900P 13%     2
ST26i 13%        2
SAMSUNG-SGH-I337 13% 2
SHV-E210S 13%    2
DROID RAZR HD 13%    2
SCH-I200 13%     2
DROID RAZR 7%    1

以下SDK出现问题:

4.1.2 40%    12
4.3 30%      9
4.4.2 10%    3
4.1.1 7%     2
4.2.2 7%     2
4.0.3 4%     1
2.3.6 4%     1

1 个答案:

答案 0 :(得分:2)

你的应用程序在哪里初始化nextPage?

我建议在onCreate of Application中添加nextPage = new ArrayList<String>();,或者直接在字段变量中添加。{/ p>

如果在活动中初始化nextPage,则可能的null方案可能是:

  • 应用程序启动
  • 活动开始 - nextPage设置且有效
  • 用户离开应用
  • Android销毁App(可能在一段时间后)
  • 发送广播(如果您已在清单中定义广播收听)
  • 应用程序已启动(但未启用活动)
  • nextPage列表为空

不知道你的应用是如何运作的,这是一个思考的例子,但可能表明你的问题。