我在我的小游戏中实现了进度条,如下所示
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);
}
};
我的问题是,当我点击设备的后退/主页按钮时,应用程序将被最小化(或进入上一屏幕),但进度条线程将在后台运行。是否可以暂停线程并在最小化/打开应用程序屏幕时恢复。
由于
答案 0 :(得分:2)
您可以在Activity的OnPause方法中暂停Thread,并且可以恢复活动的Thread on OnResume方法,该方法非常直接。现在,如果你想保持GameProgressCount完整并希望从它离开的地方恢复,那么你可以使用SharedPreference存储值,当你恢复使用相同的值开始时。