私のアプリケーションの主な活動は「破壊」されています。印刷されているログメッセージが破棄されています。しかし、終了が呼び出されているパスは実行されていません。
だから私はどのようにして 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="true" を保持していました。他の活動からのバックプレスでこのページが再び表示されないようにしたかった. そして、私はこの活動の破壊でdbのようなすべてのクリーンアップを維持していました. SO nohistory = true が原因で、このアクティビティは自動的に破棄され、すべてのリソースが閉じられ、アプリケーションで例外が発生しました。
このフラグを削除して修正し、2 番目のアクティビティの onbackpressed をオーバーライドしました。
回答ありがとうございます