繁体   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