簡體   English   中英

廣播接收器未注冊

[英]broadcast receiver not register

在我的應用程序中,我正在使用Internet連接。我想通過我的應用程序檢查Internet連接,因此我正在使用廣播接收器。 我在清單中注冊了接收方,但不知道為什么它不起作用。有人可以幫忙....在注冊接收方時有任何錯誤...我已經登錄了receive方法來檢查其是否正在注冊,但是日志永遠不會被打印。當我通過代碼注冊廣播接收器時,它的工作正常...

這是我的代碼...

<receiver android:name="com.android.fishdemo.CheckInternetConnectionChangeReceiver">
 <intent-filter>
   <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
   <action android:name="android.net.ConnectivityManager.CONNECTIVITY_ACTION" />
  </intent-filter>
</receiver>`

通過以下工作代碼檢查網絡(移動數據和WIFI):

@Override
public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub
    this.context = context; 
    ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService( Context.CONNECTIVITY_SERVICE );
    NetworkInfo mobNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
    NetworkInfo WIFINetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

    settings = context.getApplicationContext().getSharedPreferences(PREFS_NAME, 0);
    email = settings.getString("email", null);

    if(mobNetInfo.isConnected() || WIFINetInfo.isConnected()){ // write your code here to handle something}

好,根據我們的討論..

您需要在活動中注冊接收器並將其設置為全局,以便您可以在任何地方訪問它。

由於在關閉應用程序時也需要注銷接收器。

我建議您在主要活動oncreate方法中注冊接收器,然后在onKeyDown / onBackKeyPressed方法中注銷它。 什么時候關閉您的應用程序。

ook

希望這有所幫助

謝謝...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM