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();    
    }    

 

 

發佈留言