我想创建一个通知,当它点击它时会将我的应用程序放在前面,但不会更改(重新加载或导航)显示的最后一个活动。
我试过了:
setContentIntent(PendingIntent.getActivity(context, 0, new Intent(context, MainActivity.class), Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT))
但是在新的Android 4.3应用程序中,它还启动了MainActivity
的新实例,我不希望这样。
我希望我的应用程序将从显示的上一个活动继续。
怎么做?
答案 0 :(得分:6)
您永远不会设置Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT
。该标志由Android设置,当它将活动带到前面时。你设置它没有任何效果。
有几种方法可以做你想要的。看看这个answer
答案 1 :(得分:1)
对我来说可行的解决方案是:
//Resume or restart the app (same as the launcher click)
val resultIntent = Intent(context, MyLauncherActivity::class.java)
resultIntent.addCategory(Intent.CATEGORY_LAUNCHER)
resultIntent.setAction(Intent.ACTION_MAIN)
resultIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
val pendingIntent = PendingIntent.getActivity(context, 0, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT)
builder.setContentIntent(pendingIntent) //builder is the notificationBuilder
答案 2 :(得分:0)
添加“ Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP ”而不是“ Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT ”
解释here
希望这有帮助。