2012-01-06 8 views
0

私のアプリケーションの主なアクティビティは「破壊されました」。私は破壊されたログメッセージを印刷しています。しかし、仕上げが呼び出されているパスは実行されていません。アンドロイド:破棄のためのスタックトレース

だから私はどのように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(); 
    } 

} 

注:回答: 私は保たれていたアンドロイド:私のスタートアップ活動のためのnoHistory = "true" を。私はこのページを他の活動からのバックプレスで再び見ることができないようにしたかったのです。そして、私はこの活動の破壊の中でdb closeのようにすべてをきれいにしていました。したがって、nohistory = trueのため、このアクティビティは自動的に削除され、すべてのリソースが閉じられ、アプリケーションで例外が発生しました。

このフラグを削除して、2番目のアクティビティをオンにして修正しました。

あなたのお返事ありがとう

+1

http://developer.android.com/guide/topics/fundamentals/activities.html「構成変更の処理」? onDestroyは、携帯電話のデフォルトの戻るボタンまたは完成したボタンを押したときにのみ呼び出されます。 – Maverick

+0

ありがとうございます、私の問題はあなたのコードから見ることができる特定のイベントの完了後にasyncTaskにあるかもしれません異なる。手がかりとあなたの時間をありがとう私は回答と私のqueを編集しました – png

答えて

1

アクティビティが破壊される理由はいくつかあります。例えば。ユーザーがデバイスを回転させる場合、デフォルトの動作はアクティビティを破棄して新しい動作を作成することです。

を参照してください、あなたのプログラムでフィニッシュ()と呼ばれている場所...ここ

+0

あなたの助けと時間のためにたくさんありがとう。私は私のケースと解決策で私の質問を更新しました。再度、感謝します – png

関連する問題