Heres мой код для проверки сетевого подключения моего приложения. Мне нужно, чтобы мое приложение запускалось только тогда, когда оно подключено к сети и закрывает его, если нет. Код работал без ошибок, но проблема в том, что alertdialog показывается много раз.проверка сетевого соединения android
private void checkConnectivity(){
final Thread checkConnection = new Thread(new Runnable(){
@Override
public void run()
{
while (checkCon == true){
if(!isNetworkAvailable(MainActivity.this)) {
runOnUiThread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
new AlertDialog.Builder(MainActivity.this)
.setMessage("No network connection.")
.setCancelable(false)
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface d, int which) {
checkCon = false;
finish();
}
}).show();
}
});
} else {
checkCon = true;
}
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}}
});
checkConnection.start();
}
Почему вы используете цикл 'while'? –
, чтобы закрыть тему –
Из кода кажется простым исправлением, если вы установите _checkCon = false_ вправо, где вы показываете/создаете диалог (не только после закрытия пользователем диалога). В настоящее время цикл, похоже, продолжает воссоздавать диалоги, пока пользователь не закрывает один из них. – harism