我的通知应该启动一项活动,或者只是显示活动(如果它已经打开)(在屏幕上)。通知的作用是销毁活动,然后再次创建活动,即使活动已经在屏幕上。
我已经搜索了解决方案,他们说要将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()
答案 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