博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
alexkn android第一行代码-7.广播
阅读量:5256 次
发布时间:2019-06-14

本文共 2279 字,大约阅读时间需要 7 分钟。

0.Android 中的广播主要可以分为两种类型,标准广播和有序广播。标准广播(Normal broadcasts)是一种完全异步执行的广播,在广播发出之后,所有的 广播接收器几乎都会在同一时刻接收到这条广播消息,

有序广播(Ordered broadcasts)则是一种同步执行的广播,在广播发出之后,同一时刻 只会有一个广播接收器能够收到这条广播消息。

1.监听系统广播(电量/wifi/时区变化...)

如果需要监听系统广播,需要两步:

(1)重写BroadcastReceiver中的onReceive方法即可,实现自己的接收器;

public class NetworkChangeReceiver extends BroadcastReceiver {        @Override        public void onReceive(Context context, Intent intent) {            Toast.makeText(context,"network change",Toast.LENGTH_SHORT).show();        }    }

(2)定义一个意图过滤器,过滤出广播

protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        intentFilter = new IntentFilter();        intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");        networkChangeReceiver = new NetworkChangeReceiver();        registerReceiver(networkChangeReceiver,intentFilter);    }

(3)在AndroidMainifest.xml中注册 

 

2.发送普通广播

(1)实现一个广播接收器MyBroadcastReceiver,定义在接收到广播时做什么事情

public class MyBroadcastReceiver extends BroadcastReceiver {    @Override    public void onReceive(Context context, Intent intent) {        Toast.makeText(context, "received in MyBroadcastReceiver", Toast.LENGTH_SHORT).show();    }}

(2)实现一个广播发送器,定义广播的发送

public class MainActivity extends AppCompatActivity {    private IntentFilter intentFilter;    private NetWorkChangeReceiver netWorkChangeReceiver;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Button button = (Button) findViewById(R.id.button);        button.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent intent = new Intent("com.example.broadcasttest.MY_BROADCAST");                sendBroadcast(intent);            }        });    }

现在com.example.broadcasttest.MY_BROADCAST被绑定在意图中,因此需要通过在AndroidMainifest.xml中注册一个receiver即可

...

 

 

 

转载于:https://www.cnblogs.com/alexkn/p/5479944.html

你可能感兴趣的文章
CSS| 框模型-輪廓
查看>>
kafka报错 Replication factor: 3 larger than available brokers: 0.
查看>>
linux查看和修改PATH环境变量的方法
查看>>
浅谈自定义UITextField的方法
查看>>
笔记本设置无线热点
查看>>
awk算术运算一例:统计hdfs上某段时间内的文件大小
查看>>
h.264 Mode Decision
查看>>
面向对象进阶(反射)
查看>>
《基于B/S中小型超市进销存管理系统的研究与设计》论文笔记(十六)
查看>>
第四周学习总结
查看>>
Dynamics 365中的批量删除作业执行频率可以高于每天一次吗?
查看>>
HDU-4734 F(x)数位dp
查看>>
玩NOILinux
查看>>
docker--container
查看>>
Linux知识扩展二:lsof命令
查看>>
【算法与数据结构】二叉搜索树的Java实现
查看>>
1.3分布式-分布式通讯(序列化)
查看>>
使用JavaScript代码实现各种数据控件的反选功能,不要只做拖控件的菜鸟
查看>>
tcp窗口
查看>>
主数据0
查看>>