广播broadcast静态注册【可调用】

来源:互联网 发布:小马哥激活软件 编辑:程序博客网 时间:2024/06/06 08:41
1.Android的广播机制介绍

    收听收音机也是一种广播,在收音机中有很多个广播电台,每个广播电台播放的内容都不相同。接受广播时广播(发送方)并不在意我们(接收方)接收到广播时如何处理。好比我们收听交通电台的广播,电台中告诉我们现在在交通状况如何,但它并不关心我们接收到广播时做如何做出处理,这不是广播应该关心的问题,OK,到这里我们从生活中的一些小例子浅浅的理解了一下广播,那么Android 中的广播是如何操作的呢?
    在 Android 里面有各种各样的广播,比如电池的使用状态,电话的接收和短信的接收都会产生一个广播,应用程序开发者也可以监听这些广播并做出程序逻辑的处理。
    一个经典的电话黑名单,首先通过将黑名单号码保存在数据库里面,当来电时,我们接收到来电广播并将黑名单号码与数据库中的某个数据做匹配,如果匹配的话则做出相应的处理,比如挂掉电话、比如静音等等。。。

2.BroadcastReceiver的作用:处理android中发出的广播事件

3.BroadcastReceiver的编写方法:首先,在AndroidManifest.xml注册。然后,编写一个类继承 BroadcastReceiver,重写onReceive

4.BroadcastReceiver的生命周期:每次接到广播都会重新生成一个接收着,当onReceive运行完之后,周期结束

5、下面通过一个小BroadcastReceiver 来讲解一下广播在Android 中如何编写,在BroadcastReceiver中我们设置了一个按钮为按钮设置点击监听通过点击发送广播,在后台中接收到广播并打印LOG信息。代码如下:



步骤1:
******************************************************
MainActivity.java(发送广播)
 
package com.yu.bcr;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {
private Button saveButton;//声明控件
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        saveButton = (Button)this.findViewById(R.id.btn_send);//根据Id找到相对应的控件
        saveButton.setOnClickListener(new View.OnClickListener() { //发送监听器
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_EDIT);//要和AndroidManifest.xml里的保持一致
MainActivity.this.sendBroadcast(intent);//广播
}
});
    }
   
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        //getMenuInflater().inflate(R.menu.activity_main, menu);
    menu.add(0, 1, 1, R.string.exit).setIcon(
android.R.drawable.ic_menu_close_clear_cancel);
        return true;
    }
   
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case Menu.FIRST:
MainActivity.this.finish();
break;
}
return super.onOptionsItemSelected(item);
}
    
}

******************************************************


步骤2:
******************************************************
TestReceiver.java(接收广播)

package com.yu.bcr;

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

public class TestReceiver extends BroadcastReceiver {

public static final String TAG ="TestReceiver";
public TestReceiver() {
//System.out.println("Receiver");
Log.i(TAG, "Receiver");
}
@Override
public void onReceive(Context context, Intent intent) {
Log.i(TAG, "onReceiver");
}

}
******************************************************


步骤3:
******************************************************
 <receiver android:name=".TestReceiver">
            <intent-filter>
                <action android:name="android.intent.action.EDIT" />
            </intent-filter>
        </receiver>
******************************************************
0 0
原创粉丝点击