转载请注明:http://blog.csdn.net/cn_wangjing/article/details/6933908
主要内容
1.Android的广播机制介绍
2.BroadcastReceiver的作用
3.BroadcastReceiver的编写方法
4.BroadcastReceiver的生命周期
ok,开始.下面用一张图来帮大家理解一下Android的广播机制:
例子开始:
1.Activity的编写:
package cn.com.wangjing;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class TestActivity extends Activity {
private Button sendButton;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
sendButton = (Button)findViewById(R.id.sendButton);
sendButton.setOnClickListener(new BroadcastListener());
}
class BroadcastListener implements OnClickListener{
@Override
public void onClick(View v) {
TestReceiver tr = new TestReceiver();
Intent intent = new Intent();
intent.setAction(Intent.ACTION_EDIT);
TestActivity.this.sendBroadcast(intent);
}
}
}
解释:定义了一个sendButton 按钮,点击这个按钮之后会执行setOnClickListener监听器。在监听器里生成一个intent 对象,再调用setAction方法,这样就给intent 对象
设置了相应的属性,这个action的是一个常量(Intent.ACTION_EDIT)。注意,这个ACTION_EDIT的值即是我们在AndroidManifest配置里设置的值。最后通过发送sendBroadcast方法,接收类里面的方法就会执行。
2.BroadcastReceiver(接收类)的使用:
package cn.com.wangjing;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class TestReceiver extends BroadcastReceiver {
public TestReceiver(){
System.out.println("TestReceiver");
}
@Override
public void onReceive(Context arg0, Intent arg1) {
System.out.println("onReceive");
}
}
解释:TestReceiver 继承BroadcastReceiver ,复写了onReceive方法。主要处理事件的代码就放在onReceive方法中
3.在AndroidManifest注册receiver:
<receiver android:name=".TestReceiver"> <intent-filter> <action android:name="android.intent.action.EDIT"/> </intent-filter> </receiver>
解释:我们要启动一个BroadcastReceiver,需要给这个BroadcastReceiver发送一个intent对象。那么,如果这个intent对象
符合<action android:name="android.intent.action.EDIT"/>这样一个标准,就会启动TestReceiver.这样就方便我们哪个接收器接收哪个事件。
4.查看结果
5.receiver生命周期
官方解释http://developer.android.com/reference/android/content/BroadcastReceiver.html