我正在使用Android Q [beta 6]检查我的应用程序,以添加所有必需的更改,以与最新的操作系统完全兼容。然而,我发现我正在使用一个接收器从后台启动活动,并且由于最近实施的后台限制(https://developer.android.com/preview/privacy/background-activity-starts),该活动未被打开。
我尝试使用接收器上下文和应用程序上下文来启动活动,但在两种情况下,系统都会显示一个toast,说明无法从后台启动活动。
我在接收器上尝试的内容...
我希望启动MyActivity并在接收器被调用时显示通知。但实际上,我能看到通知,但是Activity从未启动。这个功能非常重要,需要立即启动Activity,那么有没有一种方法可以从接收器继续启动Activity?
我尝试使用接收器上下文和应用程序上下文来启动活动,但在两种情况下,系统都会显示一个toast,说明无法从后台启动活动。
我在接收器上尝试的内容...
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)
}
}
我希望启动MyActivity并在接收器被调用时显示通知。但实际上,我能看到通知,但是Activity从未启动。这个功能非常重要,需要立即启动Activity,那么有没有一种方法可以从接收器继续启动Activity?
SYSTEM_ALERT_WINDOW
权限了吗? - Tanasis