Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Edward1426
1 / 1 / 0
Регистрация: 21.10.2016
Сообщений: 29
1

Ожидание подключения к серверу (ProgressDialog)

17.04.2017, 17:52. Просмотров 264. Ответов 3

Здравствуйте! Мне нужно, чтобы при переходе на MainActivity вылазил ProgressDialog (он проверяет есть ли подключение к серверу), если подключение есть, то ProgressDialog пропадает, если подключения нету, то ProgressDialog пропадает, и вылазит AlertDialog, в котором написано: "Не удается подключится к серверу" и есть кнопка: "Попробовать еще раз", при нажатии на эту кнопку AlertDialog уходит и все идет по кругу (то есть снова вылазит ProgressDialog). Попробовал написать сам, но не получилось. Как это реализовать?
Спасибо за внимание)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.04.2017, 17:52
Ответы с готовыми решениями:

Ожидание ответа от запроса к серверу по сети
Всего доброго! Использую Volley для получения ответа от сервера, мне нужно чтобы при нажатии на...

Ожидание подключения wifi
Включаю wifi и пытаюсь дождаться подключения. Идея следующая final class ConnectivityReceiver...

ProgressDialog
public class Main_Activity extends Activity { private ProgressDialog pd; private...

Не показывается ProgressDialog
Пробую показать диалог пока идёт такое if (item.getItemId() == android.R.id.home ||...

Запрос http + ProgressDialog
подскажите пожалуйста как реализовать запрос к php серверу по протоколу http/https?, плюс, чтоб на...

3
ExFau$t
762 / 629 / 156
Регистрация: 08.05.2012
Сообщений: 3,071
17.04.2017, 18:36 2
Реализовать что? Здесь принято выкладывать, что не получилось, и задавать конкретные вопросы, а не "напишите за меня".
0
Edward1426
1 / 1 / 0
Регистрация: 21.10.2016
Сообщений: 29
18.04.2017, 05:41  [ТС] 3
Хорошо, вот код, который я написал, но при загрузки MainActivity ProgressDialog "не выходит", а висит белый экран (я так понимаю, потому что UI поток занят проверкой соединения), после проверки (если подключения нет) прогружается все элементы экрана и появляется AlertDialog(отображается хорошо), но когда нажимаю кнопку на AlertDialog, то снова ProgressDialog "не выходит", а элементы UI недоступны, вот как это разрешить?
((ClientSocket) getApplicationContext()).isConnected(0) -> это проверка, установлено ли соединение с сервером, возвращает Boolean.

"MainActivity"
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
public class MainActivity extends Activity {
 
    private Button bEnter;
    private ProgressBar progressBar;
    private ProgressDialog dialog;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        loadViews();
        checkConnection();
    }
 
    private void loadViews(){
        bEnter = (Button)findViewById(R.id.bEnter);
        progressBar = (ProgressBar)findViewById(R.id.loading);
    }
 
    private void checkConnection(){
        dialog = new ProgressDialog(LoggingActivity.this);
        dialog.setTitle(R.string.connectingTitle);
        dialog.setMessage(getResources().getText(R.string.connectionMessage));
        dialog.setCancelable(false);
        dialog.setIndeterminate(true);
        dialog.show();
        Handler handler = new Handler() {
            public void handleMessage(Message msg) {
                dialog.setIndeterminate(false);
                for (int i = 0; i < 5; i++){
                    if (((ClientSocket) getApplicationContext()).isConnected(0)){
                        dialog.dismiss();
                        return;
                    }
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
                dialog.dismiss();
                showDialog();
            }
        };
        handler.sendEmptyMessage(0);
    }
 
    private void showDialog(){
        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        builder.setTitle(R.string.error)
                .setMessage(R.string.errorCon)
                .setIcon(R.mipmap.ic_launcher)
                .setCancelable(false)
                .setNegativeButton(R.string.again,
                        new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                dialog.cancel();
                                checkConnection();
                            }
                        });
        AlertDialog alertDialog = builder.create();
        alertDialog.show();
    }
 
    // Нажатие на кнопку
    public void onEnter(View view){
    }
}
0
ExFau$t
762 / 629 / 156
Регистрация: 08.05.2012
Сообщений: 3,071
18.04.2017, 09:15 4
Может быть проверку соединения надо убрать из UI потока, не?
0
18.04.2017, 09:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.04.2017, 09:15

Async_Tasc появление ProgressDialog
При запуске Async Tasc в onPreExecute() создаётся и должен появится ProgressDialog. но он не...

Progressdialog при выполнении asynctask
Здравствуйте! Есть asynctask который отправляет запрос и после парсит страницу. Хотел добавить...

ProgressDialog upload fpt server
Ребята помогите разобраться private class uploadFileTask extends AsyncTask&lt;Void, Integer,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru