2012-07-01 82 views
1

我正在写一个android应用程序,它实例化一个工作线程以每秒更新UI。重新启动android应用程序时获取对象状态

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

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

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

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

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

(对不起我的英文不好)

回答

0

您应该需要从后台线程处理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; 
    } 
相关问题