简体   繁体   中英

Notification bring app to front without change activity

I want to create notification that when it clicked will bring my app to front but without changing (reload or navigate out) the last activity that was shown.

I tried:

setContentIntent(PendingIntent.getActivity(context, 0, new Intent(context, MainActivity.class), Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT))

But in the new Android 4.3 the application brought to front, but its also start a new instance of MainActivity , and I don't want this.

I want that my app will continue from the last activity that was shown.
How to do that?

You don't ever set Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT . That flag is set by Android when it brings the activity to the front. You setting it has no effect.

There's a few ways to do what you want. Check out this answer

Working solution for me was :

    //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

Add this " Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP " instead of " Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT "

Explained here

Hope this helps.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM