项目中的退出APP

来源:互联网 发布:树莓派 opencv python 编辑:程序博客网 时间:2024/04/30 07:34

退出APP的方法和区别

  • finish():结束当前Activity,不会立即释放内存。遵循android内存管理机制。
  • exit():结束当前组件如Activity,并立即释放当前Activity所占资源。
  • killProcess():结束当前组件如Activity,并立即释放当前Activity所占资源。
  • restartPackage():结束整个App,包括service等其它Activity组件。

完美退出:

  • 显示dialog
@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {    if (keyCode == KeyEvent.KEYCODE_BACK &&event.getRepeatCount() == 0) {       showTips();       return false;    }    return super.onKeyDown(keyCode, event);}private void showTips() {    AlertDialog alertDialog = new  AlertDialog.Builder(this).setTitle("提醒")           .setMessage("是否退出程序")           .setPositiveButton("确定", new DialogInterface.OnClickListener() {                    public void onClick(DialogInterface dialog, int which) {                            Intent intent = new Intent(Intent.ACTION_MAIN);                              intent.addCategory(Intent.CATEGORY_HOME);                              intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);                              startActivity(intent);                              android.os.Process.killProcess(android.os.Process.myPid());                    }            }).setNegativeButton("取消",                    new DialogInterface.OnClickListener() {                            public void onClick(DialogInterface dialog, int which) {                                       return;                    }            }).create(); // 创建对话框      alertDialog.show(); // 显示对话框}
  • 显示toast
    自定义MyApplication继承自Application然后在每个Activity中onCreate中加上MyApplication.getIntence().addActivity(this);然后在Activity中添加以下方法
import android.app.Application;import android.content.Context;/*** 作者:孟鹏* Q Q:821842708* 电话:17600296398 * 作用: Application*/public class MyApplication extends Application {    public static Context applicationContext;    private static MyApplication instance;    public static long exitTime = 0;    @Override    public void onCreate() {        super.onCreate();        applicationContext = this;        instance = this;    }    /**    * 单例模式中获取唯一的MyApplication实例    *    * @return    */    public static MyApplication getInstance() {        if (null == instance) {            instance = new MyApplication();        }        return instance;    }    /**    * 退出APP    */    public void exitApp() {        //遍历Activity,并且逐个退出        for (Activity activity : activityList) {            activity.finish();        }        //正常退出        System.exit(0);    }    /**    * 获取app的context    *    * @return    */    public static Context getContext() {        return applicationContext;    }}
0 0
原创粉丝点击