1

アクティビティ A->B->C->D から移動するアプリケーションがあります。D のボタンを押すと、スタックが A->D になるようにしたいと考えています。私はAndroid APIレベル8から10までこれを行いましたが、Android 4.0では、バックグラウンドでアクティビティを強制終了する「アクティビティを保持しない」設定があり、アクティビティが生きていないため、Intent.FLAG_ACTIVITY_CLEAR_TOPとIntent.FLAG_ACTIVITY_NEW_TASKが役に立たなくなります。

どうすればこの状況を処理できますか。どんな助けも大いに感謝します。

4

1 に答える 1

0

アクティビティを保持しない escenario をシミュレートするのは開発者のオプションだと思います。

バックスタックをクリーンアップするために使用したのは、あなたの場合はアクティビティ B と C のみで、そのアクティビティにブロードキャストを登録し、ユーザーがボタンを押したときに D アクティビティからインテントを起動することです。

public void onClick(View v){
 Intent broadcastIntent = new Intent();
 broadcastIntent.setAction("com.package.CLEAR_B_C");
 sendBroadcast(broadcastIntent);
}

したがって、B と C がインテントを受け取ったら、finish() を呼び出します。

その投稿と Francesco Laurita からの回答を参照してください

于 2013-03-21T12:28:50.547 に答える