Android прогрессбар на нажатие кнопки Домой / Назад - PullRequest
0 голосов
/ 03 ноября 2011

Я реализовал прогрессбар в моей маленькой игре, как показано ниже

    gameProgressBar =(ProgressBar)findViewById(R.id.GameProcess);

    thrd = new Thread(progressBarThread);
    thrd.start();

}

//Progress bar function
private Runnable progressBarThread = new Runnable(){

    public void run() {
        // TODO Auto-generated method stub
        while (GameProgressCount<60){  //60 = 1 minute
            try{
                myHandle.sendMessage(myHandle.obtainMessage());
                Thread.sleep(1000);

            }
            catch(Throwable t){
            }
        }
        thrd.stop();
    }

    Handler myHandle = new Handler(){

        @Override
        public void handleMessage(Message msg) {

                GameProgressCount++;
                gameProgressBar.setProgress(GameProgressCount);
        }
    };

Мой вопрос заключается в том, что, когда я нажимаю кнопку «Назад / Домой» на устройстве, приложение сворачивается (или переходит на предыдущий экран), но поток индикатора выполнения запускается в фоновом режиме. Можно ли приостановить поток и возобновить, когда я сверну / открою экран приложения.

Спасибо

1 Ответ

2 голосов
/ 03 ноября 2011

Вы можете приостановить поток в методе OnPause в Activity и возобновить метод Thread on OnResume в Activity, что довольно просто.Теперь, если вы хотите сохранить GameProgressCount нетронутым и хотите возобновить его с того места, где он оставлен, вы можете использовать SharedPreference для сохранения значения, а когда вы вернетесь назад, используйте то же значение для начала.

...