Android:如何使launcher始终打开主活动而不是子活动?(或其他)

Android:如何使launcher始终打开主活动而不是子活动?(或其他),android,stack,android-activity,task,Android,Stack,Android Activity,Task,我有活动A和B。A是带有启动器意图过滤器的活动(即当我们单击主屏幕上的应用程序图标时启动的活动) A使用startActivity(新意图(A.this,B.class))启动B 当用户打开B活动,然后将我的应用程序放到后台,然后我的应用程序的进程被终止时,当用户再次启动我的应用程序时,将打开B而不是A 这导致我的应用程序强制关闭,因为a是初始化我的应用程序所需资源的活动,当B尝试访问未初始化的资源时,B崩溃 在这种情况下,您有什么建议吗?在创建意图时,您是否尝试过设置Flag\u ACTIVI

我有活动A和B。A是带有启动器意图过滤器的活动(即当我们单击主屏幕上的应用程序图标时启动的活动)

A使用
startActivity(新意图(A.this,B.class))启动B

当用户打开B活动,然后将我的应用程序放到后台,然后我的应用程序的进程被终止时,当用户再次启动我的应用程序时,将打开B而不是A

这导致我的应用程序强制关闭,因为a是初始化我的应用程序所需资源的活动,当B尝试访问未初始化的资源时,B崩溃


在这种情况下,您有什么建议吗?

在创建意图时,您是否尝试过设置Flag\u ACTIVITY\u NEW\u TASK。
在您的情况下,请尝试
startActivity(新意图(A.this,B.class).设置标志(Intent.FLAG\u ACTIVITY\u new\u TASK))

您也应该让ACTIVITY B初始化您的资源。但是,您可以将活动A的清单放在活动A中,让启动器始终转到该活动。

对不起,请您解释一下您所说的A是什么意思?实际语法是什么?B通常表示为“com.mypackage.FOO”(或者我在清单中称之为什么),A?我甚至不知道你说的A是什么意思。我试过。。。新的意图(这是“com.mypackage.FOO”.getClass().setFlags…但这显然不起作用(我只是为了尽职调查而尝试)。A.这在您的语句中引用了它。B.类是指您要调用的类。getClass()将返回一个对象的运行时类,在这种情况下,我想我将返回基类。显然,并不总是这样做。我最终启动了其他活动:intent.setFlags(intent.FLAG_ACTIVITY_NEW_TASK | intent.FLAG_ACTIVITY_CLEAR_TASK | intent.FLAG_ACTIVITY_NO_HISTORY);