从广播接收器启动活动

时间:2021-05-25 07:21:47

标签: android push-notification broadcastreceiver

当我在广播接收器中接收到任何传输时,我正在尝试启动特定的活动。就我而言,我收到一个推送通知,其中我定义我的 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

0 个答案:

没有答案