我正在尝试在用户暂停我的应用时发出通知。因此,为了使其更容易,用户可以使用notificaction快速转到应用程序。这是我使用的代码。它适用于Android 4之前的所有版本,我不知道哪个是问题
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("Titulo")
.setContentText("Titulo");
mBuilder.setOngoing(true);
// Creates an explicit intent for an Activity this
Intent resultIntent = new Intent(getApplicationContext(), MainActivity.class);
// put the flags
resultIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
// Adds the back stack for the Intent (but not the Intent itself)
stackBuilder.addParentStack(MainActivity.class);
// Adds the Intent that starts the Activity to the top of the stack
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent =
stackBuilder.getPendingIntent(
0,
PendingIntent.FLAG_UPDATE_CURRENT
);
mBuilder.setContentIntent(resultPendingIntent);
NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
// mId allows you to update the notification later on.
mNotificationManager.notify(mId, mBuilder.build());
因此,当我在android 4. 0及更高版本中按下通知时,Activity会再次创建,而不是恢复。请帮帮忙,我不能让它工作。
EDIT(忘记manifest singletop)android:launchMode="singleTop"
相同的结果,不工作...
我的活动包含一个Map。我用的是新版谷歌Map。第2版。
4条答案
按热度按时间chy5wohz1#
我刚刚尝试了PendingIntent.FLAG_CANCEL_CURRENT,似乎对我有效
s5a0g9ez2#
在
MainActivity
的清单声明中使用android:launchMode="singleTop"
tzxcd3kk3#
在做了大量的搜索之后,对我来说唯一有效的解决方案是:
这将打开您当前的Activity,而不创建另一个Activity!
ru9i0ody4#
@帕特里克提供的解决方案取自问题并作为答案添加: