簡體   English   中英

Android 從服務啟動活動

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM