从 Android Q 中的接收器启动活动

use*_*953 5 android broadcastreceiver android-activity start-activity

我正在使用 Android Q [beta 6] 检查我的应用程序,以便添加所有必需的更改以与最后一个 SO 完全兼容。但是,我发现我正在使用接收器从后台启动活动,并且由于最后实现的后台限制(https://developer.android.com/preview/privacy/background-activity-starts),该活动不是正在被打开。

我尝试使用接收器上下文和应用程序上下文来启动活动,但在这两种情况下,系统都会显示一个提示,表示无法从后台启动活动。

我在接收器上尝试过的...

class MyReceiver : BroadcastReceiver() {

    override fun onReceive(context: Context?, intent: Intent?) {
        context?.applicationContext?.let {
            it.startActivity(Intent(it, MyActivity::class.java).apply {
                addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
            })
            PushUtils.showReceiverCalledNotification(it)
        }
    }
Run Code Online (Sandbox Code Playgroud)

这样我想启动 MyActivity 并在调用接收者时显示通知。相反,我可以看到通知,但活动从未启动。立即启动activity对于这个特性来说是非常重要的,那么有没有办法从接收者那里继续启动activity呢?

Com*_*are 4

立即启动activity对于这个特性来说是非常重要的,那么有没有办法从接收者那里继续启动activity呢?

不,抱歉。使用高优先级通知,使其以“提示”模式显示。然后,用户可以快速点击它来显示您的活动。