標籤:
1、完整退出activity的設計思路
1.1 封裝一個基礎activity類
public abstract class RootActivity extends FragmentActivity{
1.2 定義一個廣播監聽
private IntentFilter filter = new IntentFilter(FINISH_ACTION);
private BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
finish();
}
};
1.3 在oncreate中註冊並在onDestroy中登出
registerReceiver(receiver, filter);
unregisterReceiver(receiver);
1.4 使用時發送廣播
Intent intent = new Intent();
intent.setAction(RootActivity.FINISH_ACTION);
ctx.sendBroadcast(intent);
2、Android 強制退出應用
android.os.Process.killProcess(android.os.Process.myPid());//退出當前的進程
System.exit(0);//退出JVM,清除資源
備忘:若只有killprocess,而無System.exit 則後台可能還有緩衝的進程
System.exit(0),System.exit(1)的區別:
參數0和1代表退出的狀態,0表示正常退出,1表示異常退出(只要是非0的都為異常退出),該參數只是通知作業系統該程式是否是正常退出。
3、setCanceledOnTouchOutside(false) 設定dialog點擊螢幕不消失;
4、關於Context
Context是個抽象類別, Activity、Service、Application都是Context的子類。
Activity\Service\Application都是系統提供的組件,無法主動new,所以要一個Context來管理上下文關係;
Android知識雜記(四)