[英]start a new activity by closing all the stacked activities
我的活动堆栈:
Main -> Restaurant Menu -> Order Details.
下订单后,我需要关闭“ 餐厅”菜单和“订单详细信息”,并启动名为“活动订单”的新活动
Main -> Active Order. (need to close top 2 activity)
我已经尝试了以下所有选项
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
我发现的所有解决方案如下
我该如何实现。 主菜单->有效订单。 ?
谢谢。
我的想法是,每次启动新的意图时以及使用startActivity();
之后,都要设置一个SharedFile startActivity();
,我会把finish();
之后关闭当前活动,然后再打开新活动。
我用过波纹管
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
this.startActivity(intent);
this.finish();
您可以启动这样的活动:
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
这是一个最小示例,说明如何在Android中创建Intent并启动Activity。
Intent intent = new Intent(this,Home.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
Intent i = new Intent(getActivity(), ActiveOrder.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
试试这个
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
根据有关Intent的Android开发者资源 :
FLAG_ACTIVITY_CLEAR_TASK
:如果在传递给Context.startActivity()
的Intent
进行设置,则此标志将导致在启动活动之前清除与该活动关联的任何现有任务。 FLAG_ACTIVITY_NEW_TASK
:如果设置,此活动将成为此历史记录堆栈上新任务的开始。 调用startActivity(intent)
之后, startActivity(intent)
下行放进去以提高准确性:
YourActivity.this.finish();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.