我是android新手,我正在使用TabActivity。从TabActivity我开始从intent开始活动。活动顺序A - B - C - D然后从活动D,我如何创建相同的新活动A(销毁前一个A)。如果我使用FLAG_ACTIVITY_REORDER_TO_FRONT,它不会创建活动,而是打开最后一个活动A,如果我使用Clear_top则会破坏B和C活动。
请帮助实现这一目标。
答案 0 :(得分:2)
当您从活动B
中呼叫活动A
时,请在使用finish()
创建新活动B
后致电Intent
。这将结束那里的活动A
。然后再从活动D
开始,您可以使用intent创建新的活动A
。希望这可以帮助。
答案 1 :(得分:0)
您可能需要考虑在调用下一个活动之前销毁之前的活动
因此,当您打算从A调用活动B时,您可能希望使用关键字finish()
销毁活动A.
同样,当你从B to C
和C to D
移动并在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.
答案 2 :(得分:0)
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.