【问题标题】:Get object state when restarting android application重新启动android应用程序时获取对象状态
【发布时间】:2012-07-01 20:04:53
【问题描述】:

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

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

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

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

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

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

(对不起我的英语不好)

【问题讨论】:

    标签: android multithreading service android-asynctask


    【解决方案1】:

    您应该需要一个布尔变量来处理来自后台线程的 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;
        }
    

    【讨论】:

      猜你喜欢
      • 2016-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多