通知破坏和创建现有活动

时间:2013-09-21 15:55:43

标签: android

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

我已经搜索了解决方案,他们说要将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()

2 个答案:

答案 0 :(得分:4)

替换

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

PendingIntent resultPendingIntent =
stackBuilder.getPendingIntent(0,Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);

答案 1 :(得分:-1)

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