我在下面的小游戏中实现了进度栏
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);
}
};
我的问题是,当我单击设备的后退/主页按钮时,应用程序已最小化(或进入上一屏幕),但进度栏线程将在后台运行。当我最小化/打开应用程序屏幕时,是否可以暂停线程并恢复运行。
谢谢
最佳答案
您可以在Activity的OnPause方法中暂停线程,并且可以在Activity的OnResume方法中恢复线程,这非常正确。现在,如果您想保持GameProgressCount完整无缺,并且想从它离开的地方继续恢复,那么您可以使用SharedPreference来存储该值,当您恢复返回时,请使用相同的值开始。