2

我的通知应该启动一项活动,或者如果该活动已经打开(在屏幕上),则只显示该活动。通知所做的是销毁活动,然后再次创建它,即使活动已经在屏幕上。

我已经搜索了解决方案,他们说要添加android:launchMode="singleTop"到清单中的活动,但这没有效果,只要用户单击通知,活动仍然会被销毁并重新创建。

这是通知通知在单击时启动活动的方式:

Intent resultIntent = new Intent(this, MyActivity.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(MyActivity.class);
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent = 
    stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.setContentIntent(resultPendingIntent); 
// mBuilder is NotificationCompat.Builder()
4

2 回答 2

4

换行

PendingIntent resultPendingIntent = 
stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT);

PendingIntent resultPendingIntent =
stackBuilder.getPendingIntent(0,Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
于 2013-09-29T23:09:41.477 回答
-1

它不可能是。文档清楚地表明“如果活动的实例已经存在于目标任务的顶部,则系统通过调用其 onNewIntent() 方法将意图路由到该实例,而不是创建活动的新实例。” 我一遍又一遍地使用它。仔细检查您是否已设置MyActivity launchModesingleTop

于 2013-09-21T16:12:21.247 回答