android中程序的退出和關閉

在工程中,直接調用System.exit(0)函數就能夠實現對工程的關閉。也能夠使用退出對話框提醒的方式進行退出,代碼如示:ide

public boolean onKeyDown(int keyCode, KeyEvent event) 函數

{ui

if (keyCode == KeyEvent.KEYCODE_BACK &&  event.getRepeatCount() == 0) this

   {spa

   // 確認對話框對象

   final AlertDialog isExit = new AlertDialog.Builder(this).create();進程

   isExit.setMessage("你肯定要退出?");get

   DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() {it

public void onClick(DialogInterface dialog, int which) io

{

switch (which) 

{

case AlertDialog.BUTTON1:// "確認"按鈕退出程序

NotificationManager notificationManager =  (NotificationManager) ModeChooseActivity.this 

   .getSystemService(NOTIFICATION_SERVICE); 

notificationManager.cancel(0); 

System.exit(0); 

break;

case AlertDialog.BUTTON2:// "取消"按鈕取消對話框

sExit.cancel();

break;

default:

break;

}

}

};

   // 註冊監聽

   isExit.setButton("YES", listener);

   isExit.setButton2("NO", listener);

   // 顯示對話框

   isExit.show();

   return false;

   }

   return false;

   }

 

可是當工程中有多個activity時,finish只能實現單個活動的關閉。這時候須要將每一個activity存放到一個活動棧中,每開啓一個活動就進一次棧,而後設定在某一個活動中對這個棧進行總體的刪除就好,代碼以下:

public class kill extends Application {  

//運用list來保存們每個activity是關鍵  

private List<Activity> mList = new LinkedList<Activity>();  

//爲了實現每次使用該類時不建立新的對象而建立的靜態對象  

private static kill instance;   

//構造方法  

private kill(){} //實例化一次  

public synchronized static kill getInstance(){   

if (null == instance) {   

instance = new kill();   

}   

return instance;   

}   

// add Activity    

public void addActivity(Activity activity) {   

mList.add(activity);   

}   

//關閉每個list內的activity  

public void exit() {   

try {   

for (Activity activity:mList) {   

if (activity != null)   

activity.finish();   

}   

catch (Exception e) {   

e.printStackTrace();   

finally {   

System.exit(0);   

}   

}   

//殺進程  

public void onLowMemory() {   

super.onLowMemory();       

System.gc();   

}    

}  

在活動中使用kill.getInstance().addActivity(this);語句來將此活動添加到棧中,在須要關閉活動棧的activity中使用語句kill.getInstance().exit();來進行活動棧的總體刪除和程序的關閉。

相關文章
相關標籤/搜索