有没有遇到这样的情况,当你在某个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<Activity> AllActivitites = new ArrayList<Activity>();
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();
这个问题网上找了一堆,也没找到问题的解决方法。今天把这个问题解决了,希望能给其他小伙伴带来帮助。