完成活动在BackStack - 机器人 [英] Finish Activity in BackStack - Android

查看:128
本文介绍了完成活动在BackStack - 机器人的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的应用程序我有活动A,B,C,D和E.第一个活动是一个然后打开B,然后C和D.现在我回来堆栈ABCD。现在,当我移动到E从DI要完成在后面堆栈中的所有活动,并立即注册E应该在堆栈中的第一个活动。

In my app I have activities A, B, C, D and E. First activity is A then opening B and then C and D. Now my back stack is A-B-C-D. Now when I move to E from D I want to finish all the activity in back stack and now E should be the first activity in stack.

在我的情况

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

android:launchMode="singleTask"

没有工作,因为我不是重新打开一个已经打开的活动。我不得不关闭所有的活动backstack同时打开一个新的活动。

didn't work, because I am not reopening an activity which is already opened. I have to close all the activity in backstack while opening a new activity.

请帮我做这件事。

推荐答案

编辑最终答案

ActivitA重要

    import java.util.Calendar;

import android.os.Bundle;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;

import android.content.Context;
import android.content.Intent;

import android.view.View;
import android.widget.Button;


public class ActivityA extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        if (getIntent().getBooleanExtra("EXIT", false)) {
            startActivity(new Intent(ActivityA.this,ActivityE.class));
            finish();
        }  

        setContentView(R.layout.alayout);

        Button play;

        play = (Button) findViewById(R.id.aId);     

        play.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View v) {

            startActivity(new Intent(ActivityA.this,ActivityB.class));

        }

        });


    }

}

ActivityB

    import java.util.Calendar;

import android.os.Bundle;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;

import android.content.Context;
import android.content.Intent;

import android.view.View;
import android.widget.Button;


public class ActivityB extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        if (getIntent().getBooleanExtra("EXIT", false)) {
            finish();
        }  

        setContentView(R.layout.blayout);

        Button play;

        play = (Button) findViewById(R.id.bId);     

        play.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View v) {

            startActivity(new Intent(ActivityB.this,ActivityC.class));

        }

        });


    }

}

ActivityC

import java.util.Calendar;

import android.os.Bundle;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;

import android.content.Context;
import android.content.Intent;

import android.view.View;
import android.widget.Button;


public class ActivityC extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        if (getIntent().getBooleanExtra("EXIT", false)) {
            finish();
        }  

        setContentView(R.layout.clayout);

        Button play;

        play = (Button) findViewById(R.id.cId);     

        play.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View v) {

            startActivity(new Intent(ActivityC.this,ActivityD.class));

        }

        });


    }

}

ActivityD重要

import java.util.Calendar;

import android.os.Bundle;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;

import android.content.Context;
import android.content.Intent;

import android.view.View;
import android.widget.Button;


public class ActivityD extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        if (getIntent().getBooleanExtra("EXIT", false)) {
            finish();
        }  

        setContentView(R.layout.dlayout);

        Button play;

        play = (Button) findViewById(R.id.dId);     

        play.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View v) {

            Intent intent = new Intent(getApplicationContext(),ActivityA.class);
            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
              intent.putExtra("EXIT", true);
               startActivity(intent);

               finish();

        }

        });


    }

}

ActivityE

import java.util.Calendar;

import android.os.Bundle;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;

import android.content.Context;
import android.content.Intent;

import android.view.View;
import android.widget.Button;


public class ActivityE extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        if (getIntent().getBooleanExtra("EXIT", false)) {
            finish();
        }  

        setContentView(R.layout.elayout);

        Button play;

        play = (Button) findViewById(R.id.eId);     

        play.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View v) {

            //startActivity(new Intent(ActivityE.this,ActivityE.class));

        }

        });


    }

}

只是这样做

这篇关于完成活动在BackStack - 机器人的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆