Android的服务,检查互联网连接? [英] Android service to check internet connectivity?
本文介绍了Android的服务,检查互联网连接?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想创建一个Android服务,通知的主要活动时断开连接,并在互联网再次重新连接。我有以下功能检查互联网连接。
I want to create an Android service, which notifies the main activity whenever disconnects and when internet reconnects again. I have following function for checking internet connectivity:.
private boolean haveInternet(){
NetworkInfo info=(NetworkInfo)((ConnectivityManager)this.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
if(info==null || !info.isConnected()){
return false;
}
if(info.isRoaming()){
//here is the roaming option you can change it if you want to disable internet while roaming, just return false
return true;
}
return true;
}
不过,我想知道,如何使用它的服务。
But I want to know, how to use it in a service.
推荐答案
服务是专为长期化背景下运行的任务。
您应该使用的BroadcastReceiver
:
Services are designed for long backgroud running task.
You should use a BroadcastReceiver
:
这是我用来监视网络状态到我的主要活动的样本方法:
This is a sample method I use to monitor the network state into my main Activity:
private void installListener() {
if (broadcastReceiver == null) {
broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
NetworkInfo info = (NetworkInfo) extras
.getParcelable("networkInfo");
State state = info.getState();
Log.d("InternalBroadcastReceiver", info.toString() + " "
+ state.toString());
if (state == State.CONNECTED) {
onNetworkUp();
} else {
onNetworkDown();
}
}
};
final IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
registerReceiver(broadcastReceiver, intentFilter);
}
}
记住调用unregisterReceiver时的onDestroy事件发生
Remember to call unregisterReceiver when the onDestroy event occurs
希望这有助于。
这篇关于Android的服务,检查互联网连接?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文