[英]android check internet connection with BroadcastReceiver
我尝试用BroadcastReceiver检查互联网连接。我写了一些代码可以检查连接。现在,我想每5分钟检查一次连接,例如,这是我的代码
public class BroadCastSampleActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
getApplicationContext().registerReceiver(
mConnReceiver,
new IntentFilter(
ConnectivityManager.CONNECTIVITY_ACTION));
}
}, 2000);
}
private BroadcastReceiver mConnReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
boolean noConnectivity = intent.getBooleanExtra(
ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
String reason = intent
.getStringExtra(ConnectivityManager.EXTRA_REASON);
boolean isFailover = intent.getBooleanExtra(
ConnectivityManager.EXTRA_IS_FAILOVER, false);
NetworkInfo currentNetworkInfo = (NetworkInfo) intent
.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
NetworkInfo otherNetworkInfo = (NetworkInfo) intent
.getParcelableExtra(ConnectivityManager.EXTRA_OTHER_NETWORK_INFO);
if (currentNetworkInfo.isConnected()
|| otherNetworkInfo.isConnected()) {
Toast.makeText(getApplicationContext(), "Connected",
Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getApplicationContext(), "Not Connected",
Toast.LENGTH_LONG).show();
}
}
};
}
我如何写信可以每次(每5分钟)检查一次连接,如果有人知道解决方案,请帮助我。谢谢
您应该使用AlarmManager检查Internet连接。检查官方示例并查看此tut 。 我希望它能解决问题
您可以使用Timer
以固定的间隔重复执行任务。
Timer timer = new Timer();
t.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
boolean internetConnected = checkInternetConnection();
}
}, 0, 300000); //for repeating every 5 minutes
public boolean checkInternetConnection (){
//your code
}
希望能帮助到你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.