Android中启动一个Service和广播接受者BroadcastReceiver,用于随时观察网络情况
2017-03-28 16:58
417 查看
在android中我们要随时观察网络的连接情况,可以用一下的方法时刻监测
原理使用服务,在服务内部的oncreat方法类启动一个BroadcastReceiver,通过注册用于观察网络情况的接受者,从而能够时刻观察网络的情况:
知识点:1.启动服务注册接受者
2.注册具备观察系统内部网络变化情况的接受者:
intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
3.注意在服务onDestroy中关闭
使用方法:
1.权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
2.写服务代码
/** * 监测网络状态类 */ public class NetworkStateService extends Service { private String filename = "cancelfile"; private BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (JudgeServiceisRun.isBackground(getApplicationContext())) {//判断应用是否在后台,在后台就不管了 return; } String action = intent.getAction(); if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) { Intent broadcastIntent = new Intent(BroadCastUtils.NETWORK_JUDGE_ACTION); if (NetworkUtils.isNetworkAvailable(context)) { broadcastIntent.putExtra("network", false); // Toast.makeText(context,getString(R.string.current_net_type)+NetworkUtils.networkType(context),Toast.LENGTH_LONG).show(); } else { broadcastIntent.putExtra("network", true); // Toast.makeText(context,getString(R.string.net_unavailable),Toast.LENGTH_LONG).show(); } sendBroadcast(broadcastIntent); } } }; @Override public IBinder onBind(Intent intent) { return null; } @Override public void onCreate() { super.onCreate(); IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION); registerReceiver(mReceiver, intentFilter); } @Override public void onDestroy() { super.onDestroy(); unregisterReceiver(mReceiver); } @Override public int onStartCommand(Intent intent, int flags, int startId) { return super.onStartCommand(intent, flags, startId); } }
3.服务注册:
<service android:name=".NetworkStateService"/>
4.使用方法
Intent intent = new Intent(this, NetworkStateService.class); startService(intent);
相关文章推荐
- 4.1.3.3 Android 网络状态监听的静态广播接受者和动态广播接受者Broadcast-Receiver
- android用服务service与广播broadcastreceiver创建开机启动服务
- Android自定义一个广播接收器BroadcastReceiver监听本地消息
- Android自定义一个广播接收器BroadcastReceiver监听系统wifi连接
- 【总结备用】Android监听网络状态实现(BroadcastReceiver + Service)
- android BroadcastReceiver详细讲解1-自带的广播接受器-拨号、短信、卸载/安装、开机启动
- android的Service+BroadcastReceiver对网络连接进行监听
- Android之BroadcastReceiver 广播接受者(短信窃听实例)
- Android的Service与BroadcastReceiver之一 Service简介、创建、配置、启动、停止与其生命周期
- andriod之BroadcastReciever--广播接受者,启动acitivity,和service,以及停止service
- Android广播接受者BroadcastReceiver详解
- 使用广播接受者BroadcastReceiver监测网络变化
- Android 启动Service服务和发送Broadcast广播的常用方法
- Android-广播BroadcastReceiver-自定义广播接受者和发送者
- Android 如何在service和BroadCastReceiver中 启动activity和alertdialog?
- Android Service BroadcastReceiver 合用 应用全局随便启动activity
- Android监听网络状态实现(BroadcastReceiver + Service)
- Android的Service与BroadcastReceiver之四 BroadcastReceiver 简介、开发与配置;发送广播、有序广播;使用BroadcastReceiver接受系统广播
- Android——开机启动功能(Service和BroadcastReceiver)
- Android之BroadcastReceiver(广播接受者)详解