スタックを変更しないでください。Androidの戻るボタンは、Webブラウザーと同じように機能します。
私はそれを行う方法を考えることができますが、それはかなりハックです。
例にsingleTask
追加してアクティビティを作成しますAndroidManifest
。
<activity android:name=".activities.A"
android:label="@string/A_title"
android:launchMode="singleTask"/>
<activity android:name=".activities.B"
android:label="@string/B_title"
android:launchMode="singleTask"/>
Application
どこに行くかというロジックを保持する拡張。
例:
public class DontHackAndroidLikeThis extends Application {
private Stack<Activity> classes = new Stack<Activity>();
public Activity getBackActivity() {
return classes.pop();
}
public void addBackActivity(Activity activity) {
classes.push(activity);
}
}
AからBへ:
DontHackAndroidLikeThis app = (DontHackAndroidLikeThis) getApplication();
app.addBackActivity(A.class);
startActivity(this, B.class);
BからCへ:
DontHackAndroidLikeThis app = (DontHackAndroidLikeThis) getApplication();
app.addBackActivity(B.class);
startActivity(this, C.class);
C:
If ( shouldNotGoBackToB() ) {
DontHackAndroidLikeThis app = (DontHackAndroidLikeThis) getApplication();
app.pop();
}
pop()
スタックから戻るボタンを処理します。
もう一度、これを行うべきではありません:)