2014-10-19 79 views
0

下面是通过广播接收器检查互联网的代码。从广播接收器调用方法的正确方法

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 events.For我使用谷歌的距离矩阵API.And也计算当前位置和目的地之间的距离的n个事件正在使用的AsyncTask多次计算distance.But现在很迷茫如何调用广播接收器来检查互联网连接并调用计算距离的方法。如何确保应用程序是否连接到互联网或不是所有的时间。

谢谢你的时间。

+0

是否调用了onReceive()方法? – joao2fast4u 2014-10-19 00:47:43

+0

是的。@ joao2fast4u – TryingToLearn 2014-10-19 00:54:54

回答

0

难道你只是在任何其他呼叫依赖于活动的互联网连接之前调用isOnline,然后等待一会再试一次?

+0

请参阅http://stackoverflow.com/questions/9570237/android-check-internet-connection了解如何在执行AsyncTask之前执行此操作 – joao2fast4u 2014-10-19 00:58:37

+0

我不想启动活动,只需要做一些事情或服务。@ joao2fast4u – TryingToLearn 2014-10-19 03:10:17

0

如果您不需要访问用户界面,则不必使用异步。您可以简单地创建一个线程来处理使用循环进行的互联网检查并计算其中的距离。我认为在您的案例中使用广播不是一个好主意。

+0

我想要使用广播接收器的原因是一旦我重新获得网络,我可以检查距离。 – TryingToLearn 2014-10-19 02:50:41