[英]Android start an activity from a service
我有一個允許視頻通話的應用程序。 它使用 firebase 通知工作。 流量是
1) 推送來 2) PushService 啟動我的 CallService。 3)CallService通過PendingIntent啟動IncomingCallActivity。
pushService -> callService -> callActivity
如果應用程序位於前台或應用程序已最小化,則此方法有效。 但是如果應用程序根本沒有被用戶啟動或關閉,調用鏈就不起作用。 callActivity 沒有啟動。 有什么方法可以開始活動嗎?
val intent = CallActivity.newIntent(this, someExtra)
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK)
PendingIntent.getActivity(
this,
123,
intent,
PendingIntent.FLAG_ONE_SHOT
).send()
如果您的應用程序以Service
Activity
Service
並且應用程序沒有任何現有活動(這是應用程序未運行時的情況,因為您已經見過)。 此限制是在 API 級別 29 中添加的,以減少來自后台應用程序的 UI 干擾。 請參閱https://developer.android.com/guide/components/activities/background-starts了解允許后台Service
啟動Activity
所需的確切條件。
要驗證這是您的問題,請將您的 targetSDK 更改為 28 或更低,然后查看問題是否消失。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.