我的應用程序的主要活動正在「銷燬」。我有一個銷燬日誌消息,正在打印。但是完成被調用的路徑沒有被執行。android:用於銷燬的堆棧跟蹤
所以我想知道如何找出什麼觸發destroy()被調用。它是否完成我的代碼或任何其他系統錯誤。
@Override
protected void onDestroy() {
try {
super.onDestroy();
Log.i("StartUpActivity", "OnDestroy");
if (asyncTaskForSync != null && !asyncTaskForSync.isCancelled())
asyncTaskForSync.cancel(true);
if (DatabaseManager.getInstance() != null)
DatabaseManager.getInstance().close();
if (Utils.imageLoader != null)
Utils.imageLoader.stopThread();
} catch (Exception ex) {
ex.printStackTrace();
}
}
注:答: 我一直保持的android:noHistory = 「真」 爲我的啓動活動。我希望這個頁面不會在其他活動的背景中再次顯示。而且我已經把所有清理工作都像db一樣關閉在這個活動的摧毀之中。因爲nohistory = true,所以這個活動自動獲得了許可,導致所有資源關閉,從而導致我的應用程序出現異常。
我通過刪除該標誌糾正了錯誤,並且糾正了第二項活動的不良後果。
感謝您的回答
...你叫完成()在你的程序在哪裏?只有當您按下移動設備的默認後退按鈕或您已完成寫入的按鈕時,纔會調用onDestroy,或者在完成特定事件後可能會在您的asyncTask中,因爲它可以從您的代碼中看到 – Maverick 2012-01-06 15:24:37
謝謝,我的問題是不同。感謝您的線索和您的時間我已編輯我的問題與答案 – png 2012-01-06 15:55:15