我有4个活动让它为A-> B-> C-> D.在每个A,B,C活动用户需要输入数据所有数据都会在C活动中发送到服务器如果用户数据正确他会移动从D活动和从堆栈中删除的所有活动A,B,C.如果数据正确我需要让用户重新输入数据,即在背面按下它必须移动C-> B-> A.我的问题是当用户输入D活动时如何删除A,B,C活动.
使用FLAG_ACTIVITY_CLEAR_TOP这将解决您的问题
http://developer.android.com/reference/android/content/Intent.html
如果已设置,并且正在启动的活动已在当前任务中运行,则不会启动该活动的新实例,而是将关闭其上的所有其他活动,并将此Intent传递给(现在开启) top)旧活动作为新的意图.
例如,考虑一个由活动组成的任务:A,B,C,D.如果D调用带有解析为活动B组件的Intent的startActivity(),则C和D将完成,B接收给定的Intent ,导致堆栈现在是:A,B.
用它就像
Intent intent = new Intent(getApplicationContext(),
yourActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
另外,看看这个问题:
标志FLAG_ACTIVITY_CLEAR_TOP的活动(android)
编辑:我以为你想从D转移到你的家庭活动,并希望从堆栈中删除所有活动
你的堆栈就像家庭活动,A,B,C,D所以我给你这个解决方案,因为这将删除你家庭活动堆栈中的所有活动.但是你想在去D的时候抓住堆栈,你可以使用它
FLAG_ACTIVITY_TASK_ON_HOME
http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_TASK_ON_HOME
或FLAG_ACTIVITY_CLEAR_TASK
http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TASK
但这两个都是api 11级
| 归档时间: |
|
| 查看次数: |
7106 次 |
| 最近记录: |