3

アプリケーションでは、アクティビティは次のようにスタックされます。A-> B-> C-> D->E。特定の通知を受け取ってクリックすると、ActivityEが開始されます。次に戻る(電話のボタンまたはアクションバーのボタン)をクリックすると、アプリケーションが終了します。

Activityこの場合、Dに移行してから、C、B、Aに戻るにはどうすればよいですか?

戻るボタンの私のコード:

public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case android.R.id.home:
        finish();
        break;
    }
    return true;
}

アプリケーションを正常に起動すれば、すべて問題ありません。問題はActivity、通知から開始するときです。

4

2 に答える 2

3

Android には組み込みの機能があり、十分に文書化されています。まず、TaskStackBuilderクラスを見てください。これは JellyBean で導入されましたが、既にサポート ライブラリに含まれており、それを使用して必要な合成 TaskStack を構築します。ドキュメントからの要約は次のとおりです。

あるタスク スタックから Android 3.0 以降の別のタスク スタックにまたがる場合、アプリケーションは新しいタスクのバック スタック/履歴を合成する必要があります。これにより、ユーザーは新しいタスクから出て、戻るキーを繰り返し押すことでランチャーに戻ることができます。戻るキーを押しても、タスク スタック間を移動してはなりません。

TaskStackBuilder は、クロスタスク ナビゲーションに関する正しい規則に従う方法を提供します。

それをどのように構築するかは、アプリ内のアクティビティの関係によって異なりますが、Tasks and Back Stack開発者ガイドは、 Up and Backデザイン ガイドのナビゲーションと同様に、決定するのに役立ちます。あなたにとって新しい。

コード例は、効果的なナビゲーションの実装のレッスン (Android 開発者向けサイトのトレーニング セクション) にあります。

なお、 のボタンをUpActionBarと呼びます。戻るボタンと同じ機能を共有することもありますが、2つは同じではありません(あなたが話しているのはそれだと思います;-)。)

于 2012-08-16T15:39:51.090 に答える
1

アクティビティ E からアクティビティ D などにインテントを送信することで、問題を解決できると思います。したがって、メソッドを上書きする必要があります

onBackPressed()

戻るボタンをクリックすると呼び出されます。

于 2012-08-13T14:44:48.340 に答える