Сделать переключение экрана через несколько секунд (поток / намерение) - Android - PullRequest
1 голос
/ 01 апреля 2012

Я пытаюсь создать метод, который при нажатии кнопки отображает макет. Через несколько секунд я хочу, чтобы отображалась новая активность / макет.

Любые предложения о том, как это сделать ??

Ответы [ 2 ]

8 голосов
/ 01 апреля 2012

Я бы предложил не ждать в теме пользовательского интерфейса.

Вы можете использовать Handler для своей Задачи. Метод run будет выполнен в том же потоке, в котором был создан Handler:

    //delay in ms
    int DELAY = 1000;

    Handler handler = new Handler();
    handler.postDelayed(new Runnable() {            
        @Override
        public void run() {
            Intent intent = new Intent(CurrentActivity.this, NextActivity.class);
            startActivity(intent);                  
        }
    }, DELAY);
0 голосов
/ 01 апреля 2012

Должен ли пользовательский интерфейс что-либо делать во время этой задержки?Если нет, вы можете просто использовать:

Thread.sleep(timeToWaitInMilliseconds);

внутри вашего обработчика для кнопки.Это остановит поток пользовательского интерфейса на несколько секунд, однако ваш пользовательский интерфейс будет «зависать» во время задержки.

Немного лучше - использовать AsyncTask и Handler, который является новым потоком, и сделать этопоток ожидания на время, когда вы хотите отложить открытие нового действия и затем открыть новое действие в обработчике.

Я считаю, что асинхронная задача немного лучше для вашего случая, так как она позволит пользователю взаимодействовать сПользовательский интерфейс во время вашей «задержки».

Подробнее об AsyncTasks здесь:

http://developer.android.com/reference/android/os/AsyncTask.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...