我一直在查看API文档,并注意到从API级别16开始,Context类包含以下方法:
public abstract void startActivities (Intent[] intents)
我一直在谷歌上试图通过在应用程序代码,问题或文章中使用它的一个例子来表达我的好奇心,但我还没有遇到任何问题。如果有人问过类似的问题,请告诉我。
无论如何,我很好奇何时应该/可以在应用程序代码中使用,以及这样做会带来什么(如果有的话)的好处?我个人从未见过这种方法,我没有把握它的实用性。任何反馈将不胜感激。
答案 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任务堆栈。