您的位置:首页 > 理论基础 > 计算机网络

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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐