2011-11-03 4 views
0

Я implemnted прогрессбару в моей маленькой игре, как показано нижеандроида прогрессбара по щелчку Домашнего кнопки/Назад

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); 
     } 
    }; 

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

Благодаря

ответ

2

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

+0

В этом случае приложение по-прежнему активно, но сведено к минимуму, действительно ли необходимо сохранить состояние в sharedpreference? – Yogesh

+0

Если вы нажмете клавишу «Главная», активность останется в стеке, и если вы нажмете кнопку «Назад», активность будет убита. поэтому onPause - это метод, который будет вызываться в обоих случаях, чтобы вы могли приостановить поток там. и sharedPreference - это только для сохранения значений, если вы хотите возобновить действие с того места, где оно осталось, в противном случае не требуется –

Смежные вопросы