BroadcastReceiver怎么使用

          Android系统引入了一种信息传播机制----广播机制,这是一种广泛应用在应用程序之间传输信息的机制。比如低于变换,电量不足,来电来短信等。BroadcastReceiver相当 于广播接收器,类似于收音机。都知道收音机获取广播需要依靠频率来匹配,这里的频率就是Intent对象中的action属性。

         BroadcastReceiver用法比较简单,直接上代码。

        

         交互界面BroadcastReceiverActivity.java

package com.android;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

/**
 * 
 * 注释部分代码为内部类实现广播接收,
 * 使用纯代码实现注册和注销广播接收
 *
 */
public class BroadcastReceiverActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        /*IntentFilter ifi = new IntentFilter();
        ifi.addAction("com.android.innerbreceiver");
        this.registerReceiver(br,ifi);*/
        setContentView(R.layout.main);
        Button button = (Button)findViewById(R.id.startButton);
        button.setOnClickListener(new OnClickListener(){
			@Override
			public void onClick(View v) {
				Intent intent = new Intent();
				intent.setAction("com.android.myreceiver");
				//intent.setAction("com.android.innerbreceiver");
				intent.putExtra("str", "message");
				sendBroadcast(intent);
			}});
    }
    
    /*BroadcastReceiver br = new BroadcastReceiver() {
		public void onReceive(Context context, Intent intent) {
			Log.v("InnerReceiver", intent.getStringExtra("str")+"");
		}
	};*/
    
    /*public void onDestroy()
    {
    	super.onDestroy();
    	this.unregisterReceiver(br);
    }*/
}

         简单的接收器MyReceiver.java

package com.android;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

public class MyReceiver extends BroadcastReceiver {

	@Override
	public void onReceive(Context arg0, Intent arg1) {
		Log.v("MyReceiver", arg1.getStringExtra("str")+"");
	}

}

   

       注册文件AndroidManifest.xml




    

    
        
            
                

                
            
        
        
            
                
            
        
    

        接收器只接收与自己有相同action的广播,设置发送的广播相同的action就可以了,也就是频率相同。


你可能感兴趣的:(android服务与操控)