重新启动安卓应用程序时获取对象状态



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

当我按下"主页"按钮时,线程仍在运行,当我从家里重新启动应用程序时,一切正常:UI 仍然每秒更新一次。

但是,当我按下"后退"按钮,然后从家里重新启动应用程序时,该应用程序没有从工作线程发送 UI 更新。

我该怎么做才能再次获取此线程引用?

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

注意:按下"后退"按钮,将执行onDestroy()方法。当我按下"主页"按钮时,onDestroy() 没有执行。

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

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

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

最新更新