如何在回家时处理android中的多个活动任务?

时间:2015-06-08 14:12:58

标签: android android-activity task

我的应用程序A和B中有两个活动。它们运行在不同的任务中。这意味着A是启动活动,B具有singleTask launchMode和不同的taskAffinity。

当我从A(A-> B)开始B时,将创建一个新任务。这是我的问题,当我按下主页按钮将应用程序推送到后台并单击应用程序启动图标再次显示前景时,我看到的是活动A.当应用程序转到前台时,我该怎么做才能看到B?

1 个答案:

答案 0 :(得分:0)

编辑: 它不漂亮,但它的工作原理。 singletask launchmode阻止你获得当前活动的正常方式,所以这是一个解决方法。唯一的缺点是你会再次调用startActvity,可能是可见的。

将此添加到AndroidManifest.xml

    <application
    android:name=".DefaultApplication"   // add this line

将此课程添加到您的论坛

public class DefaultApplication extends Application {

private int curAct;
@Override
public void onCreate() {
    super.onCreate();
    curAct = 0;
}

public int getCurAct() {
    return curAct;
}

public void setCurAct(int curAct) {
    this.curAct = curAct;
}
}

在onCreate of B中,发布此行:

   ((DefaultApplication)this.getApplication()).setCurAct(2);

将此方法添加到A:

   public void onWindowFocusChanged(boolean hasfocus)
{
    if(hasfocus){
        int a = ((DefaultApplication) this.getApplication()).getCurAct();
        if(a == 2)
        {
            startActivity(new Intent(this, BActivity.class));
        }
    }
}

我忘记添加的内容,您应该将此方法添加到B:

    @Override
public void onBackPressed() {
    super.onBackPressed();
    ((DefaultApplication)this.getApplication()).setCurAct(1);
}