首页 > 移动平台 > 详细

Android退出程序的几种方法

时间:2015-09-25 13:25:55      阅读:267      评论:0      收藏:0      [点我收藏+]
  1. finish()

    针对单个Activity,会调用onDestroy方法,关闭当前Activity但并没有释放资源,如果Activity历史栈中不仅仅只包含当前的Activity,那么会回退到之前的Activity

  2. System.exit(0)

    针对单个Activity,不会调用onDestroy,关闭当前Activity并释放资源,如果Activity历史栈中不仅仅只包含当前的Activity,会报错

  3. android.os.Process.killProcess(android.os.Process.myPid());

    针对单个Activity,不会调用onDestroy,关闭当前Activity并释放资源,如果Activity历史栈中不仅仅只包含当前的Activity,会报错

  4. 任务管理器模式

    据说这种方式将会结束和程序包关联的一切进程(但是实测下来的效果并不理想)

    ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
    if( android.os.Build.VERSION.SDK_INT < 8){
        am.restartPackage(getPackageName());
     //需要权限android.permission.RESTART_PACKAGES
    }else{
        am.killBackgroundProcesses(getPackageName());
     //需要权限android.permission.KILL_BACKGROUND_PROCESSES
    }

  5. Intent方式

    在从子页面跳转到主页面(需要执行退出程序的页面)时,进行intent设置来清空Activity历史栈,然后在主页面finish()即可

    Intent intent = new Intent();
    intent.setClass(ChildActivity.this, MainActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); //注意本行的FLAG设置
    startActivity(intent);

  6. Activity栈

    原理就是构建一个单独的Activity栈管理器(需要继承Application),在每个Activity创建的以后,加入其中,然后在退出程序时,遍历它关闭所有Activity,代码参考来源2... 

 

 

?参考来源1:http://blog.sina.com.cn/s/blog_5da93c8f0101772p.html

 

?参考来源2:http://blog.csdn.net/sunnyfans/article/details/7688092

 

Android退出程序的几种方法

原文:http://my.oschina.net/u/2329798/blog/511046

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!