1

我正在编写一个 android 应用程序,它实例化一个工作线程以每秒更新 UI。

当我按下“主页”按钮时,线程仍在运行,当我从家里重新启动应用程序时,一切正常:用户界面仍在每秒更新。

但是,当我按下“返回”按钮,然后从家里重新启动应用程序时,应用程序没有获得从工作线程发送的 UI 更新。

我该怎么做才能再次获得此线程参考?

我需要做一个像计时器一样工作的应用程序。如果用户没有停止就离开应用程序,则工作必须继续。线程是一个不错的选择吗?我可以使用 AsyncTask 或 Service 解决这个问题吗?

注意:按下“返回”按钮,执行 onDestroy() 方法。当我按下“主页”按钮时,不会执行 onDestroy()。

(对不起,我的英语不好)

4

1 回答 1

0

您应该需要一个布尔变量来处理来自后台线程的 UI 更新。通过此变量,您可以在应用程序出现故障并通过按返回和 Home 键暂停时控制线程。将您的代码更改为:

boolean threadstatus=false;
@Override
         public void run(){
          try
          {

           while(threadstatus)
           {
             ///your code...
           }
         }
protected void onResume() {
        super.onResume();
        threadstatus=true;
    }
    @Override
    protected void onPause() {
        super.onPause();
       threadstatus=false;
    }
    @Override
    protected void onStop() {
        super.onStop();
        threadstatus=false;
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        threadstatus=false;
    }
于 2012-07-01T20:19:44.940 回答