Куда звонить код после смены статуса сети

Я работаю над приложением для Android, которое должно быть подключено к Интернету для работы (для заполнения списка). Поэтому, очевидно, когда я вхожу в него, я проверяю, есть ли соединение (эта ссылка помогла мне таким образом: Отображать предупреждение, когда интернет-соединение недоступно в приложении для Android).

Если соединение отсутствует, появляется диалоговое окно alertDialog, предлагающее пользователю либо выйти из приложения, либо перейти к настройкам и включить доступ к сети. Итак, после того, как пользователь активирует это и вернется, мне в основном нужно будет запустить код, которому нужен доступ... Мой вопрос: где я должен поместить код из предложения if снизу? В onResume() или в onRestart?

Это код, который у меня есть до сих пор:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (checkNetworkStatus()){
            System.out.println("i have internet !!!!!!!!");
        overridePendingTransition(R.anim.slide_left,R.anim.fade);

        setContentView(R.layout.activity_start);
        handler = new Handler();

        Button newOrderButton = (Button) findViewById(R.id.new_order_button);
        newOrderButton.setOnClickListener(newOrderListener);

        Button previousOrderButton = (Button) findViewById(R.id.previous_orders_button);
        previousOrderButton.setOnClickListener(previousOrderListener);
    } else {
        System.out.println("I don't have internet !!!!!!!!");
            AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(Start.this);
            .........
   }

person Teshte    schedule 13.04.2013    source источник


Ответы (1)


Если пользователь покидает активность, чтобы включить доступ к сети, то ваша текущая активность любым способом вызовет OnPause(). Когда пользователь в следующий раз откроет вашу активность, OnResume() обязательно будет вызываться, независимо от того, выходит ли пользователь из приложения или просто переходит к настройкам и возвращается. Проверьте это, чтобы увидеть блок-схему, объясняющую порядок, в котором эти функции называются. Это развеет ваши сомнения относительно того, куда поместить желаемый код. Надеюсь это поможет.

person Shobhit Puri    schedule 13.04.2013
comment
Я понимаю.. однако, что происходит, когда доступ к сети предоставляется с помощью боковой кнопки (которая в основном открывает небольшое новое окно) или верхней панели? Из того, что я вижу, onResume в эти моменты не вызывается. - person Teshte; 13.04.2013
comment
Я понимаю ваше беспокойство. Затем вы можете подумать о реализации какого-то слушателя. См. stackoverflow.com/questions/12157130/ - person Shobhit Puri; 13.04.2013