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

Я работаю над приложением для Android, которое должно быть подключено к Интернету, чтобы работать (чтобы заполнить listView). Очевидно, что когда я вхожу в него, я проверяю, есть ли соединение (эта ссылка помогла мне в этом: отображать предупреждение, когда интернет-соединение недоступно в приложении для 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);
            .........
   }

1 ответ

Решение

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

Другие вопросы по тегам