0

我必须为一个意图设置什么标志,所以如果该活动以相同的额外可见,它不会带来一个新的。

我的应用有点像 google play。通过将应用程序 ID 作为额外发送,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);
4

1 回答 1

1

在开始您的活动时使用Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP并在清单文件中将其定义为单一顶部。

如果活动在堆栈中的某个位置,它将被带到顶部(onNewIntent将调用方法)并且它上面的所有活动都将被销毁。如果它不在堆栈中,它将被创建(onCreate将调用方法)

编辑:您必须处理onNewIntent获取捆绑包并使用新值更新当前活动。

注意:还请记住,系统可能会破坏您的活动,并且可以调用您的 bothonCreate和方法。onNewIntent考虑到这一点,设计您的活动。

Edit2:如果您想拥有许多应用程序详细信息,并且用户可以通过按后退按钮导航回来。还有一个应用程序的一个细节。然后你应该使用片段。通过您的应用程序 ID/名称(唯一的)标签添加片段,并在显示应用程序详细信息搜索的同时,如果任何详细信息页面存在findFragmentByTag方法。如果存在,则将其删除并将其添加到堆栈顶部。

于 2013-11-07T16:14:40.673 回答