android中的廣播退出機制broadcast

當我們在一個anctivity中需要關閉其他已經打開的activity的時候,廣播退出機制是一個比較好的辦法

下面來看源碼,首先,我們需要先寫一個父類:BaseActivity.java

package com.createnets.www;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;

public class BaseActivity extends Activity {
	protected BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {  
        @Override  
        public void onReceive(Context context, Intent intent) {  
            finish();  
            //殺死進程
            android.os.Process.killProcess(android.os.Process.myPid());  
        }  
    };  
      
    @Override  
    public void onResume() {  
        super.onResume();  
        // 在當前的activity中註冊廣播  
        IntentFilter filter = new IntentFilter();  
        filter.addAction("ExitApp");  
        this.registerReceiver(this.broadcastReceiver, filter);  
    }  
      
    @Override  
    protected void onDestroy() {  
        // TODO Auto-generated method stub  
        super.onDestroy();  
        this.unregisterReceiver(this.broadcastReceiver);    
    }  
}

然後呢,我們只需要子類去繼承這個父類就行:



然後,我們需要在需要退出的activity,或者是“退出” 按鈕所在的activity中加入close()函數即可,然後調用這個函數

//關閉activity,只在需要退出的界面中使用
	public void close() {  
        Intent intent = new Intent();  
        intent.setAction(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); // 說明動作  
        this.sendBroadcast(intent);// 該函數用於發送廣播  
        super.finish();  
    }  


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章