2014-03-18 128 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