2013-09-30 87 views
2

我有一個活動創建一個靜態對象,然後創建一個新的活動。第二個活動在其onCreate()方法中訪問靜態對象。當正常運行時,一切都很好,並且很棒,但是如果用戶在第二個活動中離開應用程序,然後繼續執行其他殺死應用程序的內存消耗任務(如App生命週期的左側所示) ,然後重新打開應用程序時,它會在第二個活動中重新創建,但原始靜態對象不會保留。這會導致onCreate()方法中出現空點異常。很明顯,我可以將靜態對象放入保存包中,然後使用savedInstanceState將其恢復,但我想知道如何輕鬆地複製創建應用程序而不是啓動活動,因爲操作系統可能需要一段時間才能決定將其殺死由於內存消耗問題。如何測試我的android應用程序的生命週期?

http://developer.android.com/reference/android/app/Activity.html

回答

2

一個比較簡單的方法來測試它是簡單地發送裝置的意圖來啓動你的第二個活動。

爲此,您可以使用亞行的活動管理器(AM)命令,如下所示:

adb shell am start -n your.package.name/.YourActivity

這將啓動第二個活動和應用程序將在類似於如Android是否已回收的存儲器的狀態您的應用正在使用。

請注意,您必須將您的活動設置爲導出到您的清單中才能使用,並且您應該確保在完成調試後將其更改回來。您可以將活動設置爲如下導出:

<activity 
    ... 
    android:exported="true" > 
</activity> 
+0

當我嘗試此操作時,我獲得權限被拒絕。我能夠以這種方式開始我的第一個活動,但不是我的第二個活動。它給錯誤和權限拒絕。 –

+0

啊是的,你的活動需要設置爲導出才能工作。我已經更新了我的答案。 –

+0

謝謝!這工作! –

相關問題