我正在实施一个与alaram经理和brodcastreceivers相关的应用程序。
我在每一分钟都在重复警报,通过我称之为brodcastresever类的警报管理器。 在本课程中,我正在实现一个线程。代码如下:
runnable = new Runnable()
{
public void run()
{
while(i>o)
{
}
}
如果i>o
线程将继续。
另一次我的alaram经理打电话给brodcast resever class。那个时候还用旧线程创建了一个新线程。这会增加线程的重复。
如何避免?
答案 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;
}
请注意它只是一个原型,而不是实现。