重复线程?

时间:2012-02-11 10:48:47

标签: android

我正在实施一个与alaram经理和brodcastreceivers相关的应用程序。

我在每一分钟都在重复警报,通过我称之为brodcastresever类的警报管理器。 在本课程中,我正在实现一个线程。代码如下:

runnable = new Runnable() 
{
  public void run() 
  {
    while(i>o)
    {

    }
  }

如果i>o线程将继续。 另一次我的alaram经理打电话给brodcast resever class。那个时候还用旧线程创建了一个新线程。这会增加线程的重复。

如何避免?

1 个答案:

答案 0 :(得分:1)

为什么不使用请求队列来处理而不是每次都创建新线程。喜欢:

if(queue==null)
{
   queue= new ArrayList<Request>();
   queue.add(request);
   start();
}

public void run()
{
   while(queue!=null && queue.size()>0)
   {
       Request request= fetchRequest();
       processRequest(request);
   }
}

private Request fetchRequest()
{
       Request request=queue.get(0);
       queue.remove(0);
       if(queue.size()==0)
          queue=null;
       return request;
}

请注意它只是一个原型,而不是实现。