2014-03-18 93 views
0

我有一个变量声明在扩展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

我使用的错误意识,我看到已经有30个错误,其中该变量为空。它只发生很少,因为该应用程序每天获得数以千计的用户,并且这个错误本周只发生了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 
+0

有时候你会更具体吗?这是在您的应用程序在前台运行还是在后台运行时发生的? –

+0

@VaibhavAjayGupta我的应用程序只运行在前台。通过“有时”我的意思是我的应用程序本周有20k的会话和30个这些错误。所以它很少会发生这种情况 – code511788465541441

+0

您是否尝试杀死您的应用并检查该值?我猜这在用户杀死应用程序时会变为null – Praveen

回答

2

凡在你的应用程序,你初始化下一页?

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

如果您在活动初始​​化下一页,然后空的一个可能的方案可能是:

  • 应用开始
  • 活动启动 - 下一页设置和有效
  • 用户离开应用程序
  • Android破坏应用程序(可能在一段时间后)
  • 发送广播(如果您已定义在清单中广播收听)
  • 应用程序启动(但不活动)
  • 的下一页列表为空

不知道你的应用程序是如何工作的,这是一个思想的例子,但可能是你的问题的指示。

+0

您是对的。这不是在我的应用程序中发生的,但它解决了问题。我通过在后台将应用程序保留几分钟来测试它,同时我打开了许多其他应用程序。当我回到我的应用程序时,它崩溃了,因为如你所说操作系统声称nextPage的内存。谢谢! – code511788465541441

+0

欢迎您:) – cYrixmorten