从广播接收器调用方法的正确方法

时间:2014-10-19 00:42:03

标签: android

以下是通过广播接收器检查互联网的代码。

public class CheckConnection extends BroadcastReceiver {

@Override
public void onReceive(final Context context, final Intent intent) {
        if(isOnline(context)){
            //Do Stuff
        }
        else{
            //Toast message saying "No internet"
        }

}


public boolean isOnline(Context context) {
        ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo netInfo = cm.getActiveNetworkInfo();
        if (netInfo != null && netInfo.isConnected()) {
            return true;
        }
        return false;
    }
}

我已经说过n个事件。对于那些n个事件,我正在使用谷歌距离矩阵API计算当前位置和目的地之间的距离。并且还使用AsyncTask多次计算距离。但现在我对如何调用感到困惑广播接收器检查互联网连接并调用计算距离的方法。如何确定应用程序是否始终连接到互联网。

感谢您的时间。

2 个答案:

答案 0 :(得分:0)

你是否只是在依赖于有效互联网连接的任何其他呼叫之前调用isOnline,然后稍等一会再试一次?

答案 1 :(得分:0)

如果您不需要访问UI,则不必使用Async。您可以简单地创建一个线程来处理带循环的互联网检查并计算其中的距离。我不认为在你的情况下使用广播是个好主意。