3

「A」にはMainActivityアクティビティ「B」を起動するボタンがあり、アクティビティ「B」にはアクティビティ「C」を起動する別のボタンがあります。アクティビティ B と C には、両方ともonBackPressed()メソッドがありAlertDialog、ユーザーが に戻りたいかどうかを尋ねるように見えますMainActivity。はいを押すと、プログラムは MainActiviy を表示するはずです。

問題は、アクティビティ B では問題がなく、finish()メソッドを呼び出すだけでMainActivity表示されるのですが、問題はアクティビティ C にあります。finish()メソッドを呼び出すと、プログラムはアクティビティ B に戻ります。アクティビティ C から戻る方法はMainActivity? ?

4

3 に答える 3

5

これをonBackPressedで試してください:

Intent intent = new Intent(getApplicationContext(), MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

これにより、アクティビティ スタックがクリアされ、メイン アクティビティが開きます。どのアクティビティであっても、常にメイン アクティビティに戻り、他のすべてのアクティビティはスタックから削除されます。

于 2015-10-21T05:19:34.010 に答える
3

アクティビティ B と C のマニフェスト ファイルで次を使用します。

<activity android:name=".ActivityB"
            android:parentActivityName=".MainActivity"/>
<activity android:name=".ActivityC"
            android:parentActivityName=".MainActivity"/>
于 2015-10-21T00:36:53.533 に答える