第一種方法:
android.os.Process.killProcess(android.os.Process.myPid());
第二種方法:在onDestroy函數中加入代碼
System.exit(0);
第三種方法:
ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
manager.killBackgroundProcesses(package);
第四種方法:
manager.restartPackage(package);
第五種方法:
Intent MyIntent = new Intent(Intent.ACTION_MAIN);
MyIntent.addCategory(Intent.CATEGORY_HOME);
startActivity(MyIntent);
finish();
第六種方法:使用廣播機制
public abstract class EnterActivity extends BaseActivity {
...
// 寫一個廣播的内部類,當收到動作時,結束activity
private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
close();
unregisterReceiver(this); // 這句話必須要寫要不會報錯,不寫雖然能關閉,會報一堆錯
}
};
@Override
public void onResume() {
super.onResume();
// 在目前的activity中注冊廣播
IntentFilter filter = new IntentFilter();
filter.addAction(Attribute.PAGENAME);
registerReceiver(this.broadcastReceiver, filter); // 注冊
}
/**
* 關閉
*/
public void close() {
Intent intent = new Intent();
intent.setAction(Attribute.PAGENAME); // 說明動作
sendBroadcast(intent);// 該函數用于發送廣播
finish();
}
...
}
請注意,這段代碼中缺少了登出代碼,(unregisterReceiver)這個是必須要加的。