0

我在我的小游戏中实现了进度条,如下所示

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

我的问题是,当我单击设备的返回/主页按钮时,应用程序正在最小化(或转到上一个屏幕),但进度条线程将在后台运行。当我最小化/打开应用程序屏幕时,是否可以暂停线程并恢复。

谢谢

4

1 回答 1

2

您可以在 Activity 的 OnPause 方法中暂停线程,您可以在 Activity 的 OnResume 方法中恢复线程,这非常简单。现在,如果您想保持 GameProgressCount 完整并希望从它离开的地方恢复,那么您可以使用 SharedPreference 来存储该值,当您恢复时使用相同的值开始。

于 2011-11-03T03:41:59.780 回答