Android中再按一次退出和完美退出整个应用程序
Posted Flyzend
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android中再按一次退出和完美退出整个应用程序相关的知识,希望对你有一定的参考价值。
当应用不再使用时,通常需要关闭应用,可以使用以下三种方法关闭android应用:
第一种方法:首先获取当前进程的id,然后杀死该进程。 (建议使用)
android.os.Process.killProcess(android.os.Process.myPid())
第二种方法:终止当前正在运行的Java虚拟机,导致程序终止
System.exit(0);
第三种方法:强制关闭与该包有关联的一切执行
ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
manager.restartPackage(getPackageName());
<uses-permission android:name="android.permission.RESTART_PACKAGES" />
用户退出应用前给出一个提示是很有必要的,因为可能是用户并不真的想退出,而只是一不小心按下了返回键,大部分应用的做法是在应用退出去前给出一个Dialog,我觉得这样不太友好,用户还得移动手指去按dialog中的按钮。个人觉得“再按一次返回键退出程序”是best practice,实现也很简单,直接上代码:
private long exitTime = 0;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN)
if((System.currentTimeMillis()-exitTime) > 2000)
Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();
exitTime = System.currentTimeMillis();
else
finish();
System.exit(0);
return true;
return super.onKeyDown(keyCode, event);
Android 怎么退出整个应用程序?
我们在写android应用程序时,经常会遇到想退出当前Acitivity,或者直接退出应用程序.我之前的一般操作是按返回键,或者直接按home键直接返回,其实这两种操作都没有关闭当前应用程序没有释放系统资源。有时跳转的activity较多时,还需要多次按返回键,这样感觉一点都不爽。
网上提供了几种方法,我吸收了下面这个自认为简单易懂的方法,将下面SysApplication这个类复制到工程里面,然后在每个Acitivity的oncreate方法里面通过SysApplication.getInstance().addActivity(this); 添加当前Acitivity到ancivitylist里面去,最后在想退出的时候调用SysApplication.getInstance().exit();可直接关闭所有的Acitivity并退出应用程序。
附代码:
import java.util.LinkedList;
import java.util.List;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Application;
import android.content.DialogInterface;
import android.content.Intent;
public class SysApplication extends Application
private List<Activity> mList = new LinkedList<Activity>();
private static SysApplication instance;
private SysApplication()
public synchronized static SysApplication getInstance()
if (null == instance)
instance = new SysApplication();
return instance;
// add Activity
public void addActivity(Activity activity)
mList.add(activity);
public void exit()
try
for (Activity activity : mList)
if (activity != null)
activity.finish();
catch (Exception e)
e.printStackTrace();
finally
System.exit(0);
public void onLowMemory()
super.onLowMemory();
System.gc();
//在应用程序里面 的activity的oncreate里面添加SysApplication.getInstance().addActivity(this)如:
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
SysApplication.getInstance().addActivity(this);
以上是关于Android中再按一次退出和完美退出整个应用程序的主要内容,如果未能解决你的问题,请参考以下文章