Skip to content

[Bug]: Activity is not launched when the app is in background #2308

Description

@janbolat

What happened?

Hello,
I have upgraded OneSignal from v4 to v5, but now I have an issue:
I am not able to launch the activity (PushActivity) when I click the notification in the tray.

1) When the app is foregrounded, PushActivity gets created and destroyed:

[main] ApplicationService.onActivityPaused(1,APP_OPEN): com.raimbekov.android.sajde.main.ui.screen.MainActivity@c1fb541
[main] ApplicationService.onActivityCreated(1,APP_OPEN): com.onesignal.notifications.activities.NotificationOpenedActivity@f4eea31
[main] initWithContext(context: com.raimbekov.android.sajde.App@ea9d1a5, appId: null)
[main] initWithContext: SDK already initialized
[Thread-26] Retrieving service interface com.onesignal.notifications.internal.open.INotificationOpenedProcessor
[Thread-26] Found constructor: public com.onesignal.notifications.internal.open.impl.NotificationOpenedProcessor(com.onesignal.notifications.internal.summary.INotificationSummaryManager,com.onesignal.notifications.internal.data.INotificationRepository,com.onesignal.core.internal.config.ConfigModelStore,com.onesignal.notifications.internal.lifecycle.INotificationLifecycleService)
[Thread-26] Retrieving service interface com.onesignal.notifications.internal.summary.INotificationSummaryManager
[Thread-26] Already instantiated: com.onesignal.notifications.internal.summary.impl.NotificationSummaryManager@9d1ac84
[Thread-26] Retrieving service interface com.onesignal.notifications.internal.data.INotificationRepository
[Thread-26] Already instantiated: com.onesignal.notifications.internal.data.impl.NotificationRepository@93febb5
[Thread-26] Retrieving service class com.onesignal.core.internal.config.ConfigModelStore
[Thread-26] Already instantiated: com.onesignal.core.internal.config.ConfigModelStore@116d53
[Thread-26] Retrieving service interface com.onesignal.notifications.internal.lifecycle.INotificationLifecycleService
[Thread-26] Already instantiated: com.onesignal.notifications.internal.lifecycle.impl.NotificationLifecycleService@f681133
[main] ApplicationService.onActivityStarted(1,APP_OPEN): com.onesignal.notifications.activities.NotificationOpenedActivity@f4eea31
[main] ApplicationService: current activity=com.onesignal.notifications.activities.NotificationOpenedActivity@f4eea31
[main] ApplicationService.onActivityResumed(2,APP_OPEN): com.onesignal.notifications.activities.NotificationOpenedActivity@f4eea31
[Thread-26] processIntent from context: com.onesignal.notifications.activities.NotificationOpenedActivity@f4eea31 and intent: Intent { flg=0x34800000 cmp=com.raimbekov.android.sajde/com.onesignal.notifications.activities.NotificationOpenedActivity (has extras) }
[Thread-26] processIntent intent extras: Bundle[{androidNotificationId=1013604273, onesignalData={"google.delivered_priority":"high","google.sent_time":1748187358695,"google.ttl":259200,"google.original_priority":"high","custom":"{"i":"2662e757-fc57-4f08-86b4-a16655f5b5f4","a":{}}","google.product_id":111881503,"pri":"5","vis":"1","from":"63987328992","alert":"message","title":"title","google.message_id":"0:1748187358703906%a8d451fff9fd7ecd","google.c.sender.id":"63987328992","androidNotificationId":1013604273}}]
[DefaultDispatcher-worker-1] HttpClient: Request Sent = PUT https://api.onesignal.com/notifications/2662e757-fc57-4f08-86b4-a16655f5b5f4 - Body: {"app_id":"************","player_id":"830bda23-648b-4659-998e-e1b57a963291","opened":true,"device_type":1} - Headers: Accept=[application/vnd.onesignal.v1+json], Content-Type=[application/json; charset=UTF-8], OneSignal-Install-Id=[f767e93a-d234-47a2-b752-f940e5bd02c1], OneSignal-Subscription-Id=[830bda23-648b-4659-998e-e1b57a963291], SDK-Version=[onesignal/android/050134]
[Thread-26] SDK running startActivity with Intent: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.raimbekov.android.sajde/.DefaultIcon }
[main] ApplicationService.onActivityPaused(2,APP_OPEN): com.onesignal.notifications.activities.NotificationOpenedActivity@f4eea31
onClick: com.onesignal.notifications.internal.NotificationClickEvent@185d138
[main] ApplicationService.onActivityResumed(2,APP_OPEN): com.raimbekov.android.sajde.main.ui.screen.MainActivity@c1fb541
[main] ApplicationService: current activity=com.raimbekov.android.sajde.main.ui.screen.MainActivity@c1fb541
[main] ApplicationService.onActivityStopped(2,APP_OPEN): com.onesignal.notifications.activities.NotificationOpenedActivity@f4eea31
[main] ApplicationService.onActivityDestroyed(1,APP_OPEN): com.onesignal.notifications.activities.NotificationOpenedActivity@f4eea31
[main] ApplicationService.onActivityPaused(1,APP_OPEN): com.raimbekov.android.sajde.main.ui.screen.MainActivity@c1fb541
[main] ApplicationService.onActivityCreated(1,APP_OPEN): com.raimbekov.android.sajde.push.ui.PushActivity@a76e4ba
[main] ApplicationService.onActivityResumed(1,APP_OPEN): com.raimbekov.android.sajde.main.ui.screen.MainActivity@c1fb541
[DefaultDispatcher-worker-1] HttpClient: Got Response = PUT https://api.onesignal.com/notifications/2662e757-fc57-4f08-86b4-a16655f5b5f4 - STATUS: 200 - Body: {"success":true}
[main] ApplicationService.onActivityDestroyed(1,APP_OPEN): com.raimbekov.android.sajde.push.ui.PushActivity@a76e4ba

2) When the app is backgrounded, PushActivity is not even called, only launcher activity is called:

[main] ApplicationService.onActivityCreated(0,APP_CLOSE): com.onesignal.notifications.activities.NotificationOpenedActivity@20aaeb5
[main] initWithContext(context: com.raimbekov.android.sajde.App@ea9d1a5, appId: null)
[main] initWithContext: SDK already initialized
[main] ApplicationService.onActivityStarted(0,APP_CLOSE): com.onesignal.notifications.activities.NotificationOpenedActivity@20aaeb5
[main] ApplicationService: current activity=com.onesignal.notifications.activities.NotificationOpenedActivity@20aaeb5
[main] ApplicationService.handleFocus: application is now in focus, nextResumeIsFirstActivity=false
[Thread-32] Retrieving service interface com.onesignal.notifications.internal.open.INotificationOpenedProcessor
[Thread-32] Already instantiated: com.onesignal.notifications.internal.open.impl.NotificationOpenedProcessor@beeff6d
[main] BackgroundManager cancel background sync
[main] SessionService.onFocus() - fired from start: false
[main] InfluenceManager.attemptSessionUpgrade(entryAction: APP_OPEN, directId: null)
[main] InfluenceManager.attemptSessionUpgrade: try UNATTRIBUTED to INDIRECT upgrade
[main] ChannelTracker.getLastReceivedIds: lastChannelObjectReceived: []
[main] InfluenceManager.attemptSessionUpgrade: Trackers after update attempt: [ChannelTracker{tag=notification_id, influenceType=INDIRECT, indirectIds=["c0c407ca-ab05-487e-91c2-05abb61abaa7","35c5fe26-800d-432e-b948-898c9d5cf1a9","e30a3f05-a97c-4544-a728-f11eda4e3999"], directId=null}, ChannelTracker{tag=iam_id, influenceType=UNATTRIBUTED, indirectIds=null, directId=null}]
[main] ApplicationService.onActivityResumed(1,APP_OPEN): com.onesignal.notifications.activities.NotificationOpenedActivity@20aaeb5
[Thread-32] processIntent from context: com.onesignal.notifications.activities.NotificationOpenedActivity@20aaeb5 and intent: Intent { flg=0x34800000 cmp=com.raimbekov.android.sajde/com.onesignal.notifications.activities.NotificationOpenedActivity (has extras) }
[Thread-32] processIntent intent extras: Bundle[{androidNotificationId=1241420367, onesignalData={"google.delivered_priority":"high","google.sent_time":1748187578980,"google.ttl":259200,"google.original_priority":"high","custom":"{"i":"9b1168c7-3325-4fad-a427-6c00c9854737","a":{}}","google.product_id":111881503,"pri":"5","vis":"1","from":"63987328992","alert":"message","title":"title","google.message_id":"0:1748187578987820%a8d451fff9fd7ecd","google.c.sender.id":"63987328992","androidNotificationId":1241420367}}]
[Thread-32] SDK running startActivity with Intent: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.raimbekov.android.sajde/.DefaultIcon }
[DefaultDispatcher-worker-5] HttpClient: Request Sent = PUT https://api.onesignal.com/notifications/9b1168c7-3325-4fad-a427-6c00c9854737 - Body: {"app_id":"***************","player_id":"830bda23-648b-4659-998e-e1b57a963291","opened":true,"device_type":1} - Headers: Accept=[application/vnd.onesignal.v1+json], Content-Type=[application/json; charset=UTF-8], OneSignal-Install-Id=[f767e93a-d234-47a2-b752-f940e5bd02c1], OneSignal-Subscription-Id=[830bda23-648b-4659-998e-e1b57a963291], SDK-Version=[onesignal/android/050134]
[main] ApplicationService.onActivityPaused(1,APP_OPEN): com.onesignal.notifications.activities.NotificationOpenedActivity@20aaeb5
onClick: com.onesignal.notifications.internal.NotificationClickEvent@54dc37f
[main] ApplicationService.onActivityCreated(1,APP_OPEN): com.raimbekov.android.sajde.InitActivity@118c49
[main] ApplicationService.onActivityCreated(1,APP_OPEN): com.raimbekov.android.sajde.main.ui.screen.MainActivity@db72957
[main] ApplicationService.onActivityStarted(1,APP_OPEN): com.raimbekov.android.sajde.main.ui.screen.MainActivity@db72957
[main] ApplicationService: current activity=com.raimbekov.android.sajde.main.ui.screen.MainActivity@db72957
[main] ApplicationService.onActivityResumed(2,APP_OPEN): com.raimbekov.android.sajde.main.ui.screen.MainActivity@db72957
[DefaultDispatcher-worker-5] HttpClient: Got Response = PUT https://api.onesignal.com/notifications/9b1168c7-3325-4fad-a427-6c00c9854737 - STATUS: 200 - Body: {"success":true}
[main] ApplicationService.onActivityStopped(2,APP_OPEN): com.onesignal.notifications.activities.NotificationOpenedActivity@20aaeb5
[main] ApplicationService.onActivityDestroyed(1,APP_OPEN): com.onesignal.notifications.activities.NotificationOpenedActivity@20aaeb5
[main] ApplicationService.onActivityDestroyed(1,APP_OPEN): com.raimbekov.android.sajde.InitActivity@118c49

Below is my setup. Am I doing something wrong:

OneSignal.Debug.logLevel = if (BuildConfig.DEBUG) LogLevel.VERBOSE else LogLevel.NONE
OneSignal.consentRequired = false
OneSignal.consentGiven = true
OneSignal.initWithContext(context, "***************")
OneSignal.Location.isShared = false
OneSignal.disableGMSMissingPrompt = false
OneSignal.InAppMessages.paused = false
OneSignal.Notifications.addClickListener(object : INotificationClickListener {
override fun onClick(event: INotificationClickEvent) {
if (!event.notification.launchURL.isNullOrBlank()) return
val intent = Intent(context, PushActivity::class.java)
intent.package = context.packageName
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_NO_ANIMATION)
if (intent.resolveActivity(context.packageManager) != null) {
intent.putExtra(KEY_PUSH_TITLE, event.notification.title)
intent.putExtra(KEY_PUSH_BODY, event.notification.body)
intent.putExtra(KEY_PUSH_CONTENT, event.notification.additionalData?.optString(KEY_PUSH_CONTENT))
val options = ActivityOptionsCompat
.makeCustomAnimation(context, 0, 0)
.toBundle()
context.startActivity(intent, options)
}
}
})

I also have service extension:

class NotificationServiceExtension: INotificationServiceExtension {
override fun onNotificationReceived(event: INotificationReceivedEvent) {
val notification = event.notification
val context = event.context
notification.setExtender { builder ->
builder.setChannelId(Constants.CHANNEL_MESSAGES_ID)
.setColor(ContextCompat.getColor(context, R.color.logo_color))
.setSmallIcon(R.drawable.ic_message)
.setBadgeIconType(NotificationCompat.BADGE_ICON_SMALL)
.setContentText(event.notification.body)
.setTicker(event.notification.body)
.setContentTitle(event.notification.title)
.setGroup("message")
.setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
.setPriority(NotificationCompat.PRIORITY_MAX)
.setCategory(NotificationCompat.CATEGORY_MESSAGE)
}
}
}

Steps to reproduce?

Tested on 5.1.33, 5.1.34

What did you expect to happen?

I expect the PushActivity to be launched (when the app is backgrounded and foregrounded)

OneSignal Android SDK version

5.1.33, 5.1.34

Android version

15

Specific Android models

Tested on:
1) Pixel 7 Pro android 15 (emulator)
2) Pixel 6 android 15 (real device

Relevant log output

Code of Conduct

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions