Android退出程序的几种方法

  1. finish()html

    针对单个Activity,会调用onDestroy方法,关闭当前Activity但并无释放资源,若是Activity历史栈中不单单只包含当前的Activity,那么会回退到以前的Activityandroid

  2. System.exit(0)ui

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

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

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

  4. 任务管理器模式rest

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

    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
    }blog

  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

相关文章
相关标签/搜索