在Android中如何从26API以上的后台应用启动活动

问题描述 投票:1回答:2

我想在后台运行应用时从服务或广播中打开我的活动。

我尝试了以下代码

Intent intent = new Intent("android.intent.action.MAIN");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

在下面的Android 26 API上运行良好。但是对于高于26Api的用户,它没有启动活动。

它在android LogCat中提供流动信息

Timeline: Timeline: Activity_launch_request
java android broadcastreceiver android-broadcast
2个回答
2
投票

Android 10在“从后台启动新活动”方面增加了限制。检出文档:Restrictions on starting activities from the background

有关为什么要施加这些限制的更多详细信息,请查阅Chet Haase的本主题演讲。 GFM2019-Keynote-Chet Haase


1
投票

我认为此代码将起作用。

Intent intent = new Intent(getApplicationContext(), MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
© www.soinside.com 2019 - 2024. All rights reserved.