在Android中退出程序比较麻烦,尤其是在多个Activity的程序中,在2.2之前可以采用如下代码退出程序:
ActivityManager am = (ActivityManager)getSystemService (Context.ACTIVITY_SERVICE); am.restartPackage(getPackageName());
此种方法是一种最方便和最简单的退出程序的办法,但是在2.2和2.2之后就不能用了,那么如果我们要退出程序有4种办法:
Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); android.os.Process.killProcess(Process.myPid());
package com.kingtone.activity; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; /** * 所有Activity的父类,用来注册退出程序的广播事件, * 并且对收到的退出程序事件进行处理 * @author Administrator * */ public class CommonActivity extends Activity { //广播的内部类,当收到关闭事件时,调用finish方法结束activity private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { finish(); } }; @Override public void onResume() { super.onResume(); //在当前的activity中注册广播 IntentFilter filter = new IntentFilter(); filter.addAction(GlobalVarable.EXIT_ACTION); this.registerReceiver(this.broadcastReceiver, filter); } }
在需要退出程序的Activity(CommonActivity的子类)中,退出程序代码如下: