安卓开发如何优雅的实现退出整个程序

我们在开发当中经常要实现一个退出整个程序的功能,实现这样功能的方法有很多,今天我们就来利用activity中的singletask启动模式来优雅的退出整个程序吧!

首先我们需要了解的是关于singletask的一些知识,这个启动模式是栈内复用,举个简单的例子,如果有四个页面1,2,3,4,我们依次跳转,当从4跳转到2的时候,那么3和4就会被销毁,当然,如果从4跳转到1的话,那1之前的所有activity都将被销毁,此时我们再将1给finish掉就可以了,我们就是利用这样一个原理来实现退出整个程序。

另外大家也要知道,当1使用了singletask的启动模式的时候,我们再次启动该activity的时候,该activity不会再次被创建,但是会调用一个onNewIntent方法,我们的finish就要写在这个方法里面,下面我们看具体实现

第一步 设置退出按钮 设置intent 跳转到首次启动的activity 并且将此activity的启动模式设置成singletask
quit.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Intent intentto = new Intent(Main3Activity.this,MainActivity.class);
        startActivity(intentto);
    }
});
<activity android:name=".MainActivity"
    android:launchMode="singleTask">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
第二步 在首次启动的activity中重写onNewIntent方法 然后在里面写上finish方法
@Override
protected void onNewIntent(Intent intent) {
    finish();
  
}
如此就可以实现优雅的退出整个程序了

原文地址:https://www.cnblogs.com/ithuangqing/p/12113701.html