Android - BroadcastRecevier

来源:互联网 发布:windows phone10更新 编辑:程序博客网 时间:2024/06/04 20:09

使用 BroadcastReceiver 的步骤

1、定义 Intent  -->  指定其 Action  -->  sendBroadcast() ;

2、创建广播接收类继承 BroadcastReceiver ,并重写 onReceive() ;

3、注册广播接收类,并指明其对应的 action 。


BroadcastReceiver 的生命周期

BroadcastReceiver 对象仅在回调 onReceive() 时创建,onReceive() 一执行完,就会销毁该 对象。

也就是说,onReceive() 方法的每次运行都伴随着一个BroadcastReceiver 对象的创建和销毁。


DEMO

1、定义 Intent  -->  指定其 Action  -->  sendBroadcast() 

public class MainActivity extends Activity {Button btn_send;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btn_send = (Button) findViewById(R.id.btn_send);btn_send.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent();  //定义意图intent.setAction("Leave");  //该意图的动作sendBroadcast(intent);  //发送广播}});}}

2、创建广播接收类继承 BroadcastReceiver ,并重写 onReceive() 。

public class MyReceiver extends BroadcastReceiver {//若onReceive()每次都重新创建BroadcastReceiver对象,则每次也运行MyReceiver()。public MyReceiver() {Log.i("LOG", "Running MyReceiver().");}@Overridepublic void onReceive(Context context, Intent intent) {Log.i("LOG", "OK! Leaving!");}}

3、注册广播接收类,并指明其对应的 action 。

<receiver     android:name="com.example.learnbroadcastreceiver.MyReceiver" >    <intent-filter>        <action android:name="Leave" />    </intent-filter></receiver>

附件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <Button        android:id="@+id/btn_send"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="Send a Message: Leave "        android:layout_gravity="center" /></LinearLayout>






0 0