为何使用开始活动?

时间:2014-06-18 22:18:37

标签: android android-intent android-activity

我一直在查看API文档,并注意到从API级别16开始,Context类包含以下方法:

public abstract void startActivities (Intent[] intents)

我一直在谷歌上试图通过在应用程序代码,问题或文章中使用它的一个例子来表达我的好奇心,但我还没有遇到任何问题。如果有人问过类似的问题,请告诉我。

无论如何,我很好奇何时应该/可以在应用程序代码中使用,以及这样做会带来什么(如果有的话)的好处?我个人从未见过这种方法,我没有把握它的实用性。任何反馈将不胜感激。

3 个答案:

答案 0 :(得分:19)

很少在应用程序代码中使用它。我永远不会说,但我不是肯定;)

但是,在启动新任务时,可以用于创建合成后台堆栈。您希望拥有一个现成的后备堆栈,以便后退键在此任务中“分层次”导航。

奇怪的是,documentation of ContextCompat中的解释比Context本身更好。

  

如果能够,则将一组活动作为合成任务堆栈启动。

     

在API级别11(Android 3.0 / Honeycomb)中推荐的约定   用于使用后退键更改的应用程序导航。后退键的行为   是当前任务的本地任务,不捕获导航   不同的任务。浏览任务并轻松实现   之前的任务是通过“最近”UI完成的,可访问   通过软件提供的导航或系统上的最近一键   酒吧。在具有旧硬件按钮配置的设备上   只需长按主页键即可访问最近的用户界面。

     

当从一个任务堆栈交叉到另一个后Android-3.0时,   应用程序应该为新任务合成后备栈/历史记录   用户可以导航出新任务并返回到   通过反复按后退键启动发射器。后退按键应该   不在任务堆栈中导航。

     

startActivities提供了构建合成任务的机制   堆栈的多个活动。如果底层API不可用   在系统上,此方法将返回false。

答案 1 :(得分:0)

我从未使用它,但我认为在您开始新的任务时想要重新创建活动堆栈时这很有用。例如,当您的应用程序从通知启动时,系统不会为您的应用程序使用现有任务,而是默认情况下在您的应用程序上创建一个新任务。在这种情况下,您可能希望从活动堆栈的某个位置开始,使用此方法,您可以通过一次调用启动所有活动

答案 2 :(得分:0)

我用过这个方法。在某些特定的情况下,我在创建新活动时清除任务堆栈。但是当我回到已在任务堆栈中清除的活动时,我使用startActivities()创建了一个aritificial任务堆栈。