我必须为一个意图设置什么标志,所以如果活动以相同的额外可见,则不会显示新标记。
我的应用程序有点像谷歌游戏。通过将应用程序ID作为Extra发送,可以在AppActivity中显示不同的应用程序。用户可以下载应用程序,下载完成后,会显示完整的通知,按下该按钮会显示相应的活动页面。
目前,通过按通知,它会启动一项新活动,该活动在AppActivity不可见或显示其他应用时是正确的。但即使AppActivity对同一个应用程序可见,它也会启动一个新的AppActivity。
PendingIntent.getActivity(ServiceDownload.this, id,
new Intent(ServiceDownload.this, AppActivity.class)
.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT)
.putExtra(Constants.EXTRA_ID, id), 0);
答案 0 :(得分:1)
在开始活动时使用Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP
并在清单文件中将其定义为单个顶部。
如果活动在堆栈中的某个位置,它将被置于顶部(将调用onNewIntent
方法)并且将销毁其上方的所有活动。如果它不在堆栈中,则将创建它(将调用onCreate
方法)
修改:您必须处理onNewIntent
以获取捆绑包并使用新值更新您当前的活动。
注意:另请注意,系统可能会破坏您的活动,并且您可以调用onCreate
和onNewIntent
两种方法。考虑到这一点,设计你的活动。
编辑2:如果您想拥有许多应用详细信息,用户可以使用后退按钮导航回来。还有一个应用程序的一个细节。那你应该使用片段。通过应用程序ID /名称标记(独特的内容)添加片段,并在显示应用详细信息搜索时,如果任何详细信息页面存在findFragmentByTag
方法。如果存在则将其删除并将其添加到堆栈顶部。