通知:PendingIntent.getActivity如果活动已经打开,如何刷新,否则打开新活动

时间:2016-07-07 04:29:40

标签: android android-notifications

我正在尝试以下代码进行通知,因此如果活动已经打开,它将刷新活动,否则会打开一个新活动。但是,当活动已经开放时,我不希望它开启另一项活动。

 Intent startIntent = new Intent(getApplicationContext(),Myplanshow.class);
 startIntent.putExtra("table_name", table_name);
 startIntent.putExtra("changed", changed);
 startIntent.putExtra("plannumber", plannumber);
 startIntent.putExtra("scrollposition", placeposition);
 startIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
 PendingIntent contentIntent = PendingIntent.getActivity(this, 101, startIntent, PendingIntent.FLAG_UPDATE_CURRENT);

它打开但后退按钮不起作用。它认为当前正在运行的应用程序已关闭,仅创建此活动。

1 个答案:

答案 0 :(得分:1)

Myplanshow.activity launchMode 声明为应用程序的 AndroidManifest.xml 文件中的 singleTop

工作:如果Myplanshow.activity的实例出现在活动任务堆栈的顶部,则意图将在其 onNewIntent()方法中传递给它,而不是创建新的实例活动。这是您可以执行操作的方法。 否则,如果堆栈中没有活动实例,它将创建活动的新实例并传递意图包。

使用上述方法不需要添加活动标志 - NEW_TASK CLEAR_TASK

在继续操作之前,请查看官方文档。 https://developer.android.com/guide/topics/manifest/activity-element.html

希望这会有所帮助。