BroadcastReceiver更新UI
2015-12-04 09:20
531 查看
通过BroadcastReceiver可以监听系统发出被通知, 如是否联网, 但不能在BroadcastReceiver访问Activity, 如果想根据联网状态来更新UI怎么做?
把BroadcastReceiver作为Activity的内部类!
如此做可以实现两个重要的功能:
1. 在BroadcastReceiver内部访问Activity的方法;
2. 根据Activity的生命周期开关BroadcastReceiver.
代码实现:
把BroadcastReceiver作为Activity的内部类!
如此做可以实现两个重要的功能:
1. 在BroadcastReceiver内部访问Activity的方法;
2. 根据Activity的生命周期开关BroadcastReceiver.
代码实现:
<span style="font-size:14px;color:#009900;">public class MainActivity extends Activity { private static final String ACTION = "leo.myreceiver.action"; private MyReceiver myReceiver; private IntentFilter intentFilter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myReceiver = new MyReceiver(); intentFilter = new IntentFilter(ACTION); startService(this, MyService.class); // 开启Service, 等待5秒后, 发送广播 } @Override protected void onResume() { super.onResume(); registerReceiver(myReceiver, intentFilter); // 注册广播 } @Override protected void onPause() { super.onPause(); // 取消注册广播 unregisterReceiver(myReceiver); } private void update(){ // 更新UI } private class MyReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { update(); } } }</span>
相关文章推荐
- UITextField输入框 只能输入两位小数
- sql里的in对应linq的写法 及 IQueryable转化为Dictionary
- easyui 布局标题纵向排列
- sql里的in对应linq的写法 及 IQueryable转化为Dictionary
- UITextView根据内容适应大小
- UITextView
- Android Studio aapt.exe finished with non-zero exit value 1
- 修改UITextField的placeHoder字体颜色
- codeforces Queries about less or equal elements 二分
- Bluetooth Low Energy 嗅探
- iOS之UI--自定义IOS的HYCheckBox源码的使用
- chrome 26.0.XXX版本下media query流媒体查询有问题的bug
- WebKit之binding案例分析(testMediaQueryListListener.idl)
- SQL Report Builder 报表里面的常见问题分析
- UITableViewCell的几种创建和加载方式
- leetcode笔记:Longest Consecutive Sequence
- iOS UI基础-17.0 UILable之NSMutableAttributedString
- 响应式布局(Responsive Layout)/流式布局(Fluid Layout)/自适应布局(Adaptive)
- Media Queries媒体查询相关样式
- UIView