私はAndroidが初めてです。finish()を呼び出した後。現在の活動のうち、それはBackStackに残るかどうか?
私は2つのアクティビティを持っています。 AとB.は私のランチャーアクティビティです。 Aアクティビティで、私はBアクティビティを呼び出すと同時にAアクティビティを終了します。 B活動がアクティブになりますとき
このような何か、
Intent ib=new Intent(this,B.class);
startActivity(ib);
this.finish();
ので、Aはbackstackに残るか、しないのだろうか?私はデフォルトの起動モードを使用しています。
ありがとうございます。
編集:::
OK、ありがとうございます。
今、私は私がこの順A-> B-> Cで3つの活動を呼び出しています一つの質問、
を持っています。
私は別のアクティビティを呼び出すときに、現在のアクティビティを終了しています。 を使用して、
this.finish();を使用して、
私はCアクティビティにバックスタックのログも入れています。 Cが表示されているとき、ここで は私backstack印刷コードです::
今ActivityManager m = (ActivityManager) getApplicationContext().getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> runningTaskInfoList = m.getRunningTasks(10);
Iterator<ActivityManager.RunningTaskInfo> itr = runningTaskInfoList.iterator();
while (itr.hasNext()) {
ActivityManager.RunningTaskInfo runningTaskInfo = (ActivityManager.RunningTaskInfo) itr.next();
int id = runningTaskInfo.id;
CharSequence desc = runningTaskInfo.description;
int numOfActivities = runningTaskInfo.numActivities;
String topActivity = runningTaskInfo.topActivity
.getShortClassName();
Log.d("runningTaskInfoSize",runningTaskInfoList.size()+"");
Log.d("Stack :: ","C Start --------------------->");
Log.d("Stack ID ::",id+"");
Log.d("Stack NumOfActivity ::",numOfActivities+"");
Log.d("Stack Top Activity ::",topActivity+"");
}
、ログに、私はこれを取得しています:
D/Stack ::: C Start --------------------->
D/Stack ID ::: 29
D/Stack Desc ::: null
D/Stack NumOfActivity ::: 2
D/Stack Top Activity ::: .C
D/Stack ::: C Start --------------------->
D/Stack ID ::: 1
D/Stack Desc ::: null
D/Stack NumOfActivity ::: 1
D/Stack Top Activity ::: com.android.launcher2.Launcher
活動がなぜその後、フィニッシュ後backstackに残らない場合はを取得しています。 'NumOfActivity ::: 2' ??または私のコードや理解に何か問題がありますか?
https://developer.android.com/guide/components/activities/tasks-and-back-stack.html –
あなたの正確な問題は何ですか? –
私が知りたいのは、finish()の後です。アクティビティはバックスタックに残っていません。それでなぜActivity = 2?が表示されていないのですか? – zephyr