如何在Android 8.0及以上版本中从后台应用程序启动活动?

3
我希望在我的应用程序处于后台时,能够从服务或广播打开我的活动。
我尝试了以下代码:
Intent intent = new Intent("android.intent.action.MAIN");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

在Android 26 API以下,它可以正常工作。但是对于26 API以上的版本,它无法启动活动。

在Android LogCat中,它会提供下列信息:

Timeline: Timeline: Activity_launch_request
2个回答

3

这是正确的。但是WhatsApp电话是如何工作的呢? 我需要这样的功能来开发我的应用程序。 - Rahul Giradkar
1
@RahulGiradkar 当应用程序接收到系统广播时,预计该应用程序将启动UI。例如,ACTION_NEW_OUTGOING_CALL和SECRET_CODE_ACTION。应用程序可以在广播发送后的几秒钟内启动活动。因此,WhatsApp可能正在使用类似于此类的意图监听器从后台启动活动。 - Sonu Sanjeev

0

我认为这段代码会起作用。

Intent intent = new Intent(getApplicationContext(), MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接