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

相關文章
相關標籤/搜索