Android 快速退出应用程序,介绍几种快速退出 android 应用程序的方法:
1. 通过设置栈底 Activity 的 launchMode
Manifest
- <!--将栈底Activity的launchMode设置为singleTask-->
- <intent-filter>
- <category android:name="android.intent.category.LAUNCHER">
- </category>
- </action>
- </intent-filter>
- </activity>
栈底 Activity
- //重写onNewIntent方法,finish掉自己 @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); finish(); }
在需要退出的地方通过 Intent 跳转到栈底 Activity 即可退出整个应用了
2. 通过给 Intent setFlag
需要退出的 Activity
- @Override protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_third);
- findViewById(R.id.exit).setOnClickListener(new View.OnClickListener() {@Override public void onClick(View v) { //给Intent setFlag,将任务栈中栈底MainActivity之上的所有Activity finish掉 Intent intent=new Intent(ThirdActivity.this,MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); } }); }
3. 通过 Application 和 BaseActivity
定义全局 ApplicationContext
- public class ApplicationContext extends Application { //定义List,用来存放所有Activity实例 public List activities=new ArrayList<>(); //重写onTerminate(),将所有Activity实例finish掉 @Override public void onTerminate() { super.onTerminate(); for (Activity activity : activities) { activity.finish(); } }}
关联 app
定义 BaseActivity
- public class BaseActivity extends Activity {
- protected ApplicationContext app;@Override protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState); //将当前Activity加进集合 app= (ApplicationContext) getApplication(); app.activities.add(this); } @Override protected void onDestroy() { super.onDestroy(); //将当前Activity移除集合 app.activities.remove(this); }}
在需要退出的 Acticity
- @Override protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_third);
- findViewById(R.id.exit).setOnClickListener(new View.OnClickListener() {@Override public void onClick(View v) { //调用ApplicationContext的onTerminate(),finish掉所有未销毁的Activity实例 app.onTerminate(); } }); }
就爱阅读 www.92to.com 网友整理上传, 为您提供最全的知识大全, 期待您的分享,转载请注明出处。
来源: http://www.92to.com/bangong/2017/03-12/18562123.html