У меня есть служебный класс, чтобы показать закусочную, когда нет интернета.
Код моей закусочной:
public void noInternetSnackBar(Activity activity){
Snackbar snackbar = Snackbar.make(activity.findViewById(android.R.id.content), "Your internet is not working", Snackbar.LENGTH_INDEFINITE);
snackbar.setActionTextColor(Color.YELLOW);
snackbar.setAction("Settings", v -> {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setComponent(new ComponentName("com.android.settings",
"com.android.settings.Settings$DataUsageSummaryActivity"));
snackbar.dismiss();
activity.startActivity(intent);
});
snackbar.show();
}
Вот как я это называю:
new Util().noInternetSnackBar(this);
Продолжительность бесконечна, и закусочная закрывается, когда пользователь нажимает кнопку действия, которая запускает намерение в настройках Интернета. Я работаю отлично, но если пользователь просто опускает строку состояния и включает Интернет, не используя мое действие, закусочная остается там, ожидая ввода пользователя. Как мне закрыть закусочную. Краткосрочная или длительная работа в этом случае невозможна.
BroadcastReceiver
и удерживайте ссылку наSnackBar
иdismiss()
, если сеть доступна. - person ADM   schedule 20.06.2018