版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40116418/article/details/83661085
在进入好多个Activity之后,我们想要直接退出后程序,怎么办?
直接上代码吧>
一 . 新建一个ActivityCollector类作为活动管理器
public class ActivityCollector { public static List<Activity> activities = new ArrayList<>(); public static void addActivity(Activity activity){ activities.add(activity); } public static void removeActivity(Activity activity){ activities.remove(activity); } public static void finishAll(){ for(Activity activity : activities){ if(!activity.isFinishing()){ activity.finish(); } } activities.clear(); } }
二 . 修改基类BaseActivity的代码
public class BaseActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); ActivityCollector.addActivity(this); } @Override protected void onDestroy() { super.onDestroy(); ActivityCollector.removeActivity(this); } }
三 . 在ThirdActivity中执行退出操作
public class ThirdActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_third); Button button = findViewById(R.id.btn3); //退出程序 button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ActivityCollector.finishAll(); //杀死进程,保证程序完全退出 (导os包) Process.killProcess(Process.myPid()); } }); } }