我是 android 新手,我正在使用 TabActivity。从 TabActivity 我从意图开始活动。活动 A - B - C - D 的顺序,然后从活动 D,我如何创建相同的新活动 A(销毁以前的 A)。如果我使用 FLAG_ACTIVITY_REORDER_TO_FRONT 它不会创建活动,而是打开最后一个活动 A,如果我使用 Clear_top 那么它会破坏 B 和 C 活动。
请帮助实现这一目标。
我是 android 新手,我正在使用 TabActivity。从 TabActivity 我从意图开始活动。活动 A - B - C - D 的顺序,然后从活动 D,我如何创建相同的新活动 A(销毁以前的 A)。如果我使用 FLAG_ACTIVITY_REORDER_TO_FRONT 它不会创建活动,而是打开最后一个活动 A,如果我使用 Clear_top 那么它会破坏 B 和 C 活动。
请帮助实现这一目标。
当您B
从活动中调用活动时A
,请在使用finish()
创建新活动后调用。这将在那里结束活动。然后再次从witin Activity ,您可以使用意图创建一个新的Activity 。希望这可以帮助。B
Intent
A
D
A
您可能需要考虑在调用下一个活动之前销毁前一个活动
,因此当您要从 A 调用活动 B 时,您可能希望使用关键字销毁活动 A finish()
,同样当您从 D 中移动时B to C
,C to D
活动销毁C 的活动并调用新的活动 A,这样 A 活动将重新启动。
finish(); //finish the current class
Intent intent = new Intent();
intent.setClass(getApplicationcontext(), nextclass.class); //specify the next class
startActivity(intent); //start the next class.
http://developer.android.com/guide/topics/manifest/activity-element.html#lmode
android:launchMode可能是您正在寻找的答案。从文档:
Every time there's a new intent for a "standard" activity, a new instance of the class is created to respond to that intent. Each instance handles a single intent.
意味着现有的活动(如果存在)将保持在当前堆栈中不变,并且将在当前堆栈的顶部创建新实例。因此,当用户返回按钮时,用户也会在堆栈底部看到您的活动 A。