当我在广播接收器中接收到任何传输时,我正在尝试启动特定的活动。就我而言,我收到一个推送通知,其中我定义我的 PendingIntent 应该是 BroadCastReceiver
val intentNotifications =
Intent(applicationContext, MyBroadcastReceiver::class.java).apply {
this.action = NOTIFICATION_ACTION
this.setPackage(applicationContext.packageName)
putExtra(PUSH_ID, data.ID)
putExtra(DEEPLINK_ID_KEY, mbNotificationData.deepLink)
}
这是我传递给 NotificationManager 以创建推送通知的意图。在通知生成器中,我指定了以下行:
intent?.let { setContentIntent(PendingIntent.getBroadcast(context, 0, it,
PendingIntent.FLAG_UPDATE_CURRENT)) }
在这一点上,似乎一切都是正确的。我还在 AndroidManifest 中注册了我的接收器。
<receiver android:name=".MyBroadcastReceiver"
android:exported="false">
<intent-filter>
<action android:name="action_notification"/>
</intent-filter>
</receiver>
我的应用程序在前台或后台的情况下它可以完美运行,但是当我的应用程序被杀死时,启动应用程序需要 15-20 秒,我不知道为什么。
我的 BroadcastReceiver 内部的逻辑,在我的 onReceive 方法中,只是使用带有 flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP
标志的 startActivity 启动一个 Activity
我看到了这个 post,但似乎没有解决。
我错过了什么吗?
注意:我使用的是三星 S10 和 Android 9