我的主要活動中設置了一個動態廣播接收器,每當我的網絡狀態發生變化時,都應顯示Toast消息。我在線連接,運行應用程序,「你在線!」吐司消息顯示,我然後關閉我的筆記本電腦上的互聯網,導航回到我的主要活動,我一直得到相同的「你在線!」吐司。我正在檢查我的日誌語句,並且我的NetworkInfo對象保持返回狀態,當我確實沒有時,我確實在線。我在我的模擬器和手機上試過這個。有誰知道爲什麼?檢查在線連接始終返回True
這是我的主要活動包含嵌套我廣播接收機類,意圖過濾器和方法來執行吐司:
public class MainActivity extends AppCompatActivity {
private IntentFilter onlineIntentFilter;
private CheckOnlineReceiver checkOnlineReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
onlineIntentFilter = new IntentFilter();
checkOnlineReceiver = new CheckOnlineReceiver();
onlineIntentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
}
@Override
protected void onResume() {
super.onResume();
registerReceiver(checkOnlineReceiver, onlineIntentFilter);
}
@Override
protected void onPause() {
super.onPause();
unregisterReceiver(checkOnlineReceiver);
}
public void isNetworkAvailable() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = cm.getActiveNetworkInfo();
Log.v("TAG", "NETWORK INFO =========== " + networkInfo);
if (networkInfo != null && networkInfo.isConnected()) {
Toast.makeText(this,"You Are Online!",Toast.LENGTH_LONG).show();
}else{
Toast.makeText(this,"You Are Not Online!",Toast.LENGTH_LONG).show();
}
}
private class CheckOnlineReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
boolean stateChanged = (action.equals(ConnectivityManager.CONNECTIVITY_ACTION));
if (stateChanged){
isNetworkAvailable();
}
}
}}
仍然得到相同的結果,不幸的是 –
更新您的代碼,它應該現在工作.. – Deepesh