0

你什么时候需要一个带你到主屏幕的 Intent?因为这是否意味着您不再可以控制应用程序?

例如,作为开发人员,您在执行以下代码后可以做什么:

Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
4

1 回答 1

3

你可能认为这是一个更棘手的问题。首先,在现实生活中你通常不会这样做。如果您完成了活动,则调用它的 finish() 方法。android 系统会将您返回到您从中调用活动的活动,如果您从主屏幕启动它,它将是您的主屏幕。但是,如果您从其他应用程序启动它,例如查看某个联系人地址的地图,当您在地图活动上“完成()”时,您将返回到您的联系人应用程序。

当您启动具有意图的活动时,根据该活动的确切性质,您可能会在您的活动正在运行的进程中打开该活动的新实例,或者您可能只是将一个已经在运行的不同进程带到前面应用程序/活动。在主屏幕的情况下,我不知道会发生什么,因为我不知道主屏幕是如何被编程为应用程序/活动的,以及它是如何在清单中声明的​​。

对于傻笑,我将您的代码行放在我的一个应用程序的主要活动的 onCreate() 中。我有相当古怪的行为。意图肯定让我离开了我的应用程序,并且似乎破坏了我的应用程序在该过程中运行的过程。(至少在 Eclipse 中,它终止了 ADB 连接,所以我再也看不到它发生了什么。)当我从主屏幕回到我的主要活动时,它有时会回到我的应用程序的主屏幕,有时到我的应用程序的辅助屏幕,有时只是再次弹回主屏幕。我想我的辅助应用程序的其他代码调用意图以某种方式成为我的应用程序“状态”的一部分,以某种方式返回它会在启动家庭活动后以某种方式进入。

显然我在这里胡扯。我会把这个留给其他人,他们可能会在调用意图启动主屏幕而不是使用“finish()”来摆脱活动的情况下真正受益。

于 2012-04-23T03:34:50.273 回答