【问题标题】:After an Intent takes the user to the homescreen, what else can your application do?在 Intent 将用户带到主屏幕后,您的应用程序还能做什么?
【发布时间】:2012-04-22 23:30:31
【问题描述】:

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

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

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

【问题讨论】:

  • 我正在尝试获取有关用户与其设备交互方式的信息。即打开另一个应用程序/打开文件夹

标签: android android-intent homescreen


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-11
    • 1970-01-01
    • 2017-10-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-15
    • 2013-02-14
    • 1970-01-01
    相关资源
    最近更新 更多