注销登陆后返回登录界面,按手机返回键仍能返回主界面的问题解决方案

有没有遇到这样的情况,当你在某个Activity注销账户后,跳转到登录界面,但是当你按手机的返回键的时候,它又跳到了主界面(主界面跳转其他页面没有销毁)。那么解决方案就来了,那就是让它(主界面)销毁。

第一种,最简单,但是有个问题就是跳转的时候回出现空白页虽然时间很短,但是效果不好。方案就是跳转的时候清除当前这个栈,在从新建一个栈,这个新的登录界面就在这个新的栈里打开。

Intent intent = new Intent(SZ_MyCenterActivity.this, SZLoginActivity.class);
                        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK);
                        startActivity(intent);

我要说的就是第二种方法,注销账号后销毁所有的Activity,在创建新的登录界面,这样点击返回键就会退出程序。
第一步就是新建一个公共的Activity管理类。

package com.epoint.szztb.action;

import android.app.Activity;

import java.util.ArrayList;
import java.util.List;

/**
 *  Activity管理类
 * author BULISILI
 * create at 2016/11/7 16:23
 */
public class CommonAction {

    private List AllActivitites = new ArrayList();
    private static CommonAction instance;

    public CommonAction() {

    }

    public synchronized static CommonAction getInstance() {
        if (null == instance) {
            instance = new CommonAction();
        }
        return instance;
    }

    //在Activity基类的onCreate()方法中执行
    public void addActivity(Activity activity) {
        AllActivitites.add(activity);
    }

     //注销是销毁所有的Activity
    public void OutSign() {
        for (Activity activity : AllActivitites) {
            if (activity != null) {
                activity.finish();
            }
        }
    }
}

建一个Activity的基类BaseActivity

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //把Activity添加到集合里面
        CommonAction.getInstance().addActivity(this);

    }

最后一步:注销账号

  Intent intent = new Intent(SZ_MyCenterActivity.this, SZLoginActivity.class);

                        startActivity(intent);
                        CommonAction.getInstance().OutSign();

这个问题网上找了一堆,也没找到问题的解决方法。今天把这个问题解决了,希望能给其他小伙伴带来帮助。

你可能感兴趣的:(android,移动开发)