方法一:
首先要在被销毁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();
}