0
我的應用程序使用Broadcastlistener查找Connectivity-State。 如果手機處於離線狀態,應出現小吃店。小吃店有一個行動,打開網絡設置。重新打開應用程序後,不會再出現Snackbar
如果我點擊這個,我的網絡設置打開。如果我沒有打開我的互聯網並返回到應用程序,我的小吃店不會再顯示,雖然它被稱爲(檢查它!)。
如果我將Snackbar設置爲null並將其重新初始化,它將起作用!
MainActivity:
@Override
protected void onResume() {
super.onResume();
registerReceiver(networkListener, new IntentFilter("android.net.conn.CONNECTIVITY_CHANGE"));
}
@Override
protected void onPause() {
super.onPause();
unregisterReceiver(networkListener);
}
@Override
public void ToggleSnackbar(boolean ShowHide) {
if (ShowHide) {
snbInternetState.show();
}
else {
snbInternetState.dismiss();
}
bOnline = ShowHide;
}
NetworkListener:
public class NetworkListener extends BroadcastReceiver {
private SnackbarInterface snbInterface;
public NetworkListener(SnackbarInterface snbInterface) {
this.snbInterface = snbInterface;
}
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ni = cm.getActiveNetworkInfo();
if (ni == null || !ni.isConnectedOrConnecting()) {
snbInterface.ToggleSnackbar(true);
}
else if (ni != null && ni.isConnected()) {
snbInterface.ToggleSnackbar(false);
}
}
public interface SnackbarInterface {
void ToggleSnackbar(boolean ShowHide);
}
}
有誰知道如何解決這個問題?
謝謝!
每次需要時重新創建Snackbar的問題是什麼? – Maverick283
我認爲它不是「最好的」方式......我想知道爲什麼會出現這個問題! –