スタックの以前のすべてのアクティビティ (新しいアクティビティを除く) を削除する方法を知りたいのですが、Android API 10 (Android 2.3.3) でそれが必要です。
この回答に導かれて、API 11以降に専用のフラグが存在するため、直接不可能であることはわかっています。
しかし、これが可能かどうか、互換性があるかどうか、または誰かが解決策を持っているかどうかを知りたいです。
前もって感謝します。
スタックの以前のすべてのアクティビティ (新しいアクティビティを除く) を削除する方法を知りたいのですが、Android API 10 (Android 2.3.3) でそれが必要です。
この回答に導かれて、API 11以降に専用のフラグが存在するため、直接不可能であることはわかっています。
しかし、これが可能かどうか、互換性があるかどうか、または誰かが解決策を持っているかどうかを知りたいです。
前もって感謝します。
これを行う方法は、常に を使用してアクティビティを開始することstartActivityForResult()
です。アクティビティ スタックをクリーンアップする場合は、現在のアクティビティを呼び出しsetResult(RESULT_CANCELED)
てから を呼び出しますfinish()
。すべてのアクティビティ (メインまたは「ルート」アクティビティを除く) には、次のメソッドがあります。
@Override
protected void onActivityResult (int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_CANCELED) {
// Want to clear the activity stack so I should just go away now
setResult(RESULT_CANCELED); // Propagate result to the previous activity
finish();
}
これにより、スタック内のすべてのアクティビティが終了します。
スタックに保持したくない各アクティビティにマニフェストファイルandroid:noHistory="true"を追加できます