Android退出程式

來源:互聯網
上載者:User

標籤:

  通常一個Android程式會對應多個activity,對於結束一個activity,通常我們會想到使用finish(),finish僅僅是針對activity的,它只是將活動推向後台,並沒有立即釋放記憶體,資源並沒有被清理。例如A—〉B(由A視窗開啟B視窗),如果在B中調用finish(),只是將B視窗關閉了,這時候會顯示A視窗。那麼如何退出整個程式呢?

一、Dalvik VM的本地方法

1. android.os.Process.killProcess(android.os.Process.myPid())    //擷取PID , 殺死進程

2. System.exit(0);   //常規java、c#的標準退出法,傳回值為0代表正常退出  

public void exitProgrames() {        Intent startMain = new Intent(Intent.ACTION_MAIN);        startMain.addCategory(Intent.CATEGORY_HOME);        startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);        startActivity(startMain);        android.os.Process.killProcess(android.os.Process.myPid());        //或者 System.exit(0);    }

二、工作管理員方法

  前提:Android 1.5 API Level為3以上

     需要許可權:<uses-permission android:name=\"android.permission.RESTART_PACKAGES\"></uses-  permission>

  代碼:

ActivityManager actManager = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);actManager.restartPackage(getPackageName());

三、自訂實現管理Activity

//單例模式管理activitypublic class ActivityManger {    List<Activity> activityList = new LinkedList<Activity>();    private static ActivityManger instance;        public ActivityManger getInstance(){                if(instance == null){            instance = new ActivityManger();        }        return instance;    }        //添加activity    public void addActivity(Activity activity){        activityList.add(activity);    }        //遍曆關閉每一個activity    public void exit(){                for(Activity activity: activityList){            activity.finish();        }    }}

四、通過 Intent.FLAG_ACTIVITY_CLEAR_TOP

  A開啟B 時,在Intent中加入標誌 Intent.FLAG_ACTIVITY_CLEAR_TOP

ntent intent = new Intent();intent.setClass(A.this, B.class);intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);  //設定FLAGstartActivity(intent); 

  B啟動時,將會清除該進程空間的所有Activity。

Android退出程式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.