如何删除除HomeActivity之外的所有活动。
例如:A(家庭活动)-> B-> C-> D现在再次调用B活动,删除C&D活动。我正在通过意图将数据从D活动发送到B活动。我有一个下一个按钮,如果我单击下一个按钮,则此过程将完成。如果我反压,那么我的过程将是D-> C-> B-> A
然后您需要在C&D活动中都创建static activity
变量。
就这样
//create static variable
public static CActivity cactivity;
然后在onCreate
的Activity
中初始化此变量。
//initialization
cactivity=this;
在所需的位置填写activity
// use this where you want to finish activity
CActivity.cactivity.finish();
请确保Activity
必须在后台运行,否则应用程序将崩溃。
我建议的解决方案不是那么平滑,但不要用startActivityForResult代替所有启动活动,而是搜索结果代码,以及从活动返回的结果代码(供您处理)当然),然后以结果代码的方式调用完成所有活动,直到您到达家庭活动为止。
从D-> B出发时,请使用intent.setFlag(Intent.FLAG_ACTIVITY_CLEAR_TOP);
它将关闭所有其他活动,并将其作为新的Intent交付给(现在位于顶部的)旧活动。