我想运行一个后台进程在Android的上网检查 [英] I want to run a background process for internet checking in Android

查看:163
本文介绍了我想运行一个后台进程在Android的上网检查的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要像它在后台运行的异步任务的后台进程。如何运行Internet连接检查作为Android的一个后台进程?

I want a background process like async task which runs in the background. How to run internet connection checking as a background process in Android?

推荐答案

尝试监听通过广播接收器连接状态的变化。

Try to listen for Connectivity State Changes through a Broadcast Receiver.

在清单寄存器接收器:

    <receiver android:name=".MyReceiver">
       <intent-filter>
          <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
       </intent-filter>
    </receiver>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

广播接收器的Java类:

Java class of Broadcast receiver:

public class MyReceiver extends BroadcastReceiver {
    public void onReceive(Context context, Intent intent) {
     Log.d("app","Network connectivity change");
     if(intent.getExtras()!=null) {
        NetworkInfo ni=(NetworkInfo) intent.getExtras().get(ConnectivityManager.EXTRA_NETWORK_INFO);
        if(ni!=null && ni.getState()==NetworkInfo.State.CONNECTED) {
            Log.i("app","Network "+ni.getTypeName()+" connected");
        } else if(intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY,Boolean.FALSE)) {
            Log.d("app","There's no network connectivity");
        }
   }
}

这篇关于我想运行一个后台进程在Android的上网检查的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆