天天看点

解决注销登录进入登录界面,避免返回到主界面

方法一:

首先要在被销毁Activity里面定义一个静态全局Activity变量,之后再onCreated方法里让它等于this,如:

public static Activity mActivity;
 
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mActivity = this;
  }
           

之后在其他地方销毁它

DestoryActivity.mActivity.finish();
           

这种方法很是简单

方法二

在想被一起销毁的activity中重写onActivityResult方法

注:我是在fragment中重写该方法的
@Override
    public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(data==null) return ;
        if (requestCode == 1000) {
            String result_value = data.getStringExtra("finishMainActivity");
            if(result_value.equals("finishMainActivity")){
                startActivity(new Intent(getContext(), LoginActivity.class));
                getActivity().finish();
            }
        }
    }
           

在该想被一起销毁的activity中启动执行销毁的activity时:

startActivityForResult(SettingActivity.getIntent(getContext()), 1000);
           

然后在执行销毁动作的activity中写如下方法

@Override
    public void toLoginActivity() {
        Intent intent = new Intent();
        intent.putExtra("finishMainActivity", "finishMainActivity");
        setResult(1000, intent);
        this.finish();
    }