我試圖將一些連接狀態感知添加到我的應用程序。 在這裏使用示例和谷歌的文檔iv'e拿出一個接收器,當連接狀態改變時正確顯示一個警報,但是當創建活動時也會不必要地顯示它。連接更改接收器在Android中獲取虛假意圖
的ConnectStatusReceiver:
package com.zivtaller.placefinder.receivers;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.util.Log;
import android.widget.Toast;
public class ConnectStatusReceiver extends BroadcastReceiver {
private String TAG = "netReceiver";
public ConnectStatusReceiver() {
super();
}
@Override
public void onReceive(Context context, Intent arg1) {
ConnectivityManager cm = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null
&& activeNetwork.isConnectedOrConnecting();
if (isConnected) {
Log.d(TAG, "Data connected");
Toast.makeText(context, "Data connected", Toast.LENGTH_SHORT)
.show();
} else {
Log.d(TAG, "Data not connected");
Toast.makeText(context, "Data not connected", Toast.LENGTH_SHORT)
.show();
}
}
}
其初始化和註冊在活動的的onResume():
netReceiver = new ConnectStatusReceiver();
IntentFilter netFilter = new IntentFilter();
netFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
registerReceiver(netReceiver, netFilter);
粘性打電話
isInitialStickyBroadcast()
似乎已經問題。 通過保存每次更改的狀態並使用保存的狀態在onResume中啓動和註冊偵聽器時得到解決。 – Kepedizer