1、Application當中代碼:
[java] public class WeiboApplication extends Application {
// 程序退出標記
private List<Activity> activities = new ArrayList<Activity>();
public void addActivity(Activity activity) {
activities.add(activity);
}
@Override
public void onTerminate() {
super.onTerminate();
for (Activity activity : activities) {
activity.finish();
}
android.os.Process.killProcess(android.os.Process.myPid());
}
}
public class WeiboApplication extends Application {
// 程序退出標記
private List<Activity> activities = new ArrayList<Activity>();
public void addActivity(Activity activity) {
activities.add(activity);
}
@Override
public void onTerminate() {
super.onTerminate();
for (Activity activity : activities) {
activity.finish();
}
android.os.Process.killProcess(android.os.Process.myPid());
}
}
2、每個Activity在oncreate當中的代碼:
[java]@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main_activity);
WeiboApplication app = (WeiboApplication) getApplication();
app.addActivity(this);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main_activity);
WeiboApplication app = (WeiboApplication) getApplication();
app.addActivity(this);
}
3、在TabActivity當中設置退出代碼(類似的可以在普通Activity當中設置)
[java] @Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN
&& event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
// 創建對話框 www.aiwalls.com
LayoutInflater li = LayoutInflater.from(this);
View exitV = li.inflate(R.layout.exitdialog, null);
AlertDialog.Builder ab = new AlertDialog.Builder(this);
ab.setView(exitV);// 設定對話框顯示的View對象
ab.setPositiveButton(R.string.menu_logout_label, new OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
WeiboApplication app = (WeiboApplication) getApplication();
app.onTerminate();
}
});
ab.setNegativeButton(R.string.cancel_button_title, null);
// 顯示對話框
ab.show();
return false;
}
return false;
};
摘自 Snowball