如何通过单一意图(来自小部件)调用多个Activity?

时间:2015-05-30 13:04:20

标签: android android-intent parallel-processing

我正在寻找一个问题的答案我想在哪个事件上打开两个活动parallely,其中一个活动将在后台,另一个活动在前景中,但当前景活动停止时,后台活动应该火了。

有可能吗?我想知道这个伎俩

@downvoters如果发现它没用,请发表评论

更新

以下是我尝试过的代码:

 Intent intent = new Intent(context, ActivityTwo.class);
        Intent home= new Intent(context,MainActivity.class);
        Intent[] intents={intent,home};
        PendingIntent pendingIntent = PendingIntent.getActivities(context,0,intents,0);

但这仅打开MainActivity类。 我希望它在前台打开Activitytwo类,在后台打开mainActivity

解决

  

对于那些希望知道如何从小部件并行打开多个活动的人   好的,这是我的问题

它应该是

的字符串数组
Intent[] intents={home,intent};

而不是

Intent[] intents={intent,home};

Reference

3 个答案:

答案 0 :(得分:1)

它可以使用startActivities(Context,Intent [],bundle)。只有这里要解释的参数是Intent [],它是你需要触发的所有活动的意图数组。

只有一个活动(不确定数组中的第一个或最后一个意图,你可以对此进行试验)将保持在前台,剩下的将保留在后台。当你向后按时,他们将继续射击直到发射器活动。

来自docs:

  
    

public static boolean startActivities(Context context,Intent [] Intents,Bundle options)

  
     

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

     

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

     

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

     

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

     

参数context使用此活动作为开始活动   起始上下文意图定义活动的意图数组   将开始。元素长度-1将对应于顶部   生成的任务堆栈上的活动。 options其他选项   应该如何开始活动。见{@link   android.content.Context #startActivity(Intent,Bundle)如果是,则返回true   底层API可用,调用成功,false   否则

<强>更新

  

元素长度-1将对应于生成的任务堆栈上的顶部活动。

所以这也解决了我的困惑!

<强>更新

Intent intent = new Intent(context, ActivityTwo.class);
        Intent home= new Intent(context,MainActivity.class);
        Intent[] intents={home,intent};
        startActivities(context, intents, null);

答案 1 :(得分:0)

{{1}}

在此示例中,第二个活动将在第一个活动关闭后打开。

答案 2 :(得分:0)

1)覆盖activity1上的onStop()并启动activity2。