Вот ответ, который показывает, почему возникает эта проблема: Активность просочилась в окно, которое было первоначально добавлено
Теперь, в вашем случае вы написали этот код
if(mobile == true || wifi == true){
Log.d(TAG, "wifi is true");
connectionDialog.dismiss();
startActivity (new Intent("ravebox.dev.sdr.CLEARSCREEN"));
finish();
Log.d(TAG, "started activity");
}
В приведенном выше коде, где вы показываете connectionDialog.dismiss();
, прежде чем отклонить его.
И в этом коде вы показываете диалог с помощью connectionDialog.show();
, но где находится код для его отклонения.
if(mobile == false || wifi == false){
Log.d(TAG, "wifi is false");
wifiHandler.post(new Runnable() {
@Override
public void run() {
Log.d(TAG, "show dialog");
connectionDialog.show();
Log.d(TAG, "show'd dialog");
}
});
Итак, пожалуйста, найдите решение для этого, оно должно быть примерно таким.
Показать диалог только при запуске, если Wi-Fi подключен cancel()
и перейти к следующему действию, если он не подключен cancel()
через некоторое время и выдать сообщение о том, что Wi-Fi не найден или не подключен.