我在后台运行应用程序时遇到处理通知的问题。当前,当我在单击通知后将应用程序置于后台时,它将启动清单中定义的第一个活动(在我的情况下为LoginActivity)。如果它正在运行,我希望它可以将其他活动带到前台。
这是我在清单中的活动声明
<activity
android:name=".features.login.LoginActivity"
android:label="@string/app_name"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity
android:name="co.blastlab.expo.features.event.EventActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.NoActionBar"/>
在下面,我有我的sendNotification方法。
private fun sendNotification(remoteMessage: RemoteMessage) {
val notification = remoteMessage.notification
val intent = Intent(this, EventActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
val pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT)
val defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)
val notificationBuilder = NotificationCompat.Builder(this, defaultChannel)
.setLargeIcon(BitmapFactory.decodeResource(resources, R.mipmap.launcher_48dp))
.setSmallIcon(R.drawable.icon)
.setContentTitle(notification!!.title)
.setContentText(notification.body)
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setChannelId(defaultChannel)
.setContentIntent(pendingIntent)
val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
notificationManager.notify(0, notificationBuilder.build())
}
我不知道下一步该怎么做。