Android最新的应用列表重定向到另一个应用

时间:2016-02-15 20:01:06

标签: android

我在应用程序中有代码(让我们称之为应用程序' A'),它会在第二个应用程序上启动活动(让我们称之为应用程序' B' ;)当用户点击按钮时。

到目前为止一直很好,但我希望以后能够回到应用程序A'使用系统的概述屏幕(也就是最近的应用程序列表),但是当我尝试将我自动重定向回App B时,就像我第二次点击该按钮一样。

手机正在运行Android KitKat,代码如下:

 mButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            try {
                startActivity(new Intent("com.some.package.MAIN"));
            } catch (ActivityNotFoundException e) {
                e.printStackTrace();
            }

        }
    });

1 个答案:

答案 0 :(得分:0)

  

到目前为止一直很好,但我希望以后可以使用系统的概述屏幕(也就是最近的应用程序列表)回到应用程序'A',但是当我尝试自动重定向回App B时,就像我第二次点击按钮一样。

这是Android的默认行为。 Android Activity生命周期使用名为Task.的基于上下文的statck 所以App'B'就在调用Activity App'A'的任务中。

您可以使用以下标记覆盖此行为。

  mButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            try {

                Intent i=new Intent("com.some.package.MAIN");                    
                i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);                    
                startActivity(i);
            } catch (ActivityNotFoundException e) {
                e.printStackTrace();
            }

        }
    });

1)FLAG_ACTIVITY_NEW_TASK - 如果设置,此活动将成为此历史记录堆栈上新任务的开始。任务(从启动它的活动到下一个任务活动)定义用户可以移动到的原子活动组。任务可以移动到前台和后台;特定任务内的所有活动始终保持相同的顺序。

2)FLAG_ACTIVITY_CLEAR_TOP - 如果已设置,并且正在启动的活动已在当前任务中运行,则不是启动该活动的新实例,而是启动该活动的所有其他活动将被关闭,此Intent将作为新的Intent传递到(现在在顶部)旧活动。

3)FLAG_ACTIVITY_SINGLE_TOP - 如果已设置,则如果活动已在历史堆栈顶部运行,则不会启动该活动。