3 回答
TA贡献1859条经验 获得超6个赞
这应该可以解决问题。
<activity ... android:launchMode="singleTop" />
创建启动应用程序的意图时:
Intent intent= new Intent(context, YourActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
这是需要的。
TA贡献1856条经验 获得超17个赞
最终对我真正起作用的是:
Intent myIntent = new Intent(getBaseContext(), MainActivity.class);
myIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(myIntent);
TA贡献1862条经验 获得超7个赞
从文档引用:
“标准”和“ singleTop”模式在一个方面彼此不同:每次有新的“标准”活动意图时,都会创建该类的新实例以响应该意图。每个实例都处理一个意图。类似地,还可以创建“ singleTop”活动的新实例来处理新意图。但是,如果目标任务在其堆栈的顶部已经具有该活动的现有实例,则该实例将接收到新的意图(在onNewIntent()调用中);没有创建新实例。
我不确定100%表示“已经在其堆栈顶部具有该活动的现有实例”是什么意思,但是您的活动可能不满足此条件。
请问singleTask或singleInstance为你的工作?或者也许您可以尝试设置FLAG_ACTIVITY_SINGLE_TOP要创建的意图,以查看是否有所不同,尽管我认为不会。
- 3 回答
- 0 关注
- 683 浏览
添加回答
举报