2014-10-19 102 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