Android 完全退出整个应用 不在栈底也能退出

时间:2022-03-01 20:36:06
  1. 新建一个没有界面的Activity  

[java] view plain copy
  1. <activity  
  2.      android:name=".ExitActivity"  
  3.      android:label="@string/title_activity_exit"  
  4.      <span style="color:#ff0000;">android:launchMode="singleTop"  
  5.      android:theme="@android:style/Theme.NoDisplay"</span> >  
  6. </activity>  

[java] view plain copy
  1. import android.app.Activity;  
  2. import android.content.Intent;  
  3. import android.os.Bundle;  
  4. import android.util.Log;  
  5. import android.view.Menu;  
  6. import android.view.MenuItem;  
  7.   
  8. public class ExitActivity extends BaseActivity {  
  9.   
  10.     @Override  
  11.     protected void onCreate(Bundle savedInstanceState) {  
  12.         super.onCreate(savedInstanceState,R.layout.activity_exit);  
  13.     }  
  14.   
  15.     @Override  
  16.     public void initView() {  
  17.         Log.e("ExitActivity""initView");  
  18.         if (infoUtil.isExit()) {  
  19.             Log.e("ExitActivity""退出APP");  
  20.             infoUtil.setExit(false);  
  21.             finish();  
  22.         } else {  
  23.             Intent intent = new Intent(this,V2MainActivity.class);  
  24.             startActivity(intent);  
  25.         }  
  26.           
  27.     }  
  28.   
  29.     @Override  
  30.     public void addListener() {  
  31.           
  32.     }  
  33.   
  34.       
  35.     @Override  
  36.     protected void onNewIntent(Intent intent) {  
  37.         // TODO Auto-generated method stub  
  38.         Log.e("ExitActivity""onNewIntent");  
  39.         super.onNewIntent(intent);  
  40.         // 退出  
  41.         if ((Intent.FLAG_ACTIVITY_CLEAR_TOP & intent.getFlags()) != 0) {  
  42.             infoUtil.setExit(false);  
  43.             finish();  
  44.         }  
  45.     }  
  46.       
  47.       
  48. }  


当然我这里是考虑到切换账号 所以我在登录成功后跳转界面时 跳转到了这个ExitActivty 如果不是退出我将清除所有的Activity 来达到重新加载新用户的资料和界面

如果不需要切换账号的话 可以不用写我在initView里判断

在你需要退出的地方调用

[java] view plain copy
  1. Intent intent = new Intent(mContext,ExitActivity.class);               
  2. intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);    
  3. startActivity(intent);    
  4. finish();