如何在启动线程后更改线程中的可运行代码

时间:2016-06-29 14:17:54

标签: java android multithreading

假设我的服务的startcommand方法如下所示

public int onStartCommand(final Intent intent, int flags, final int startId) {  
final String s= intent.getStringExtra("time"); // s contains some time in hh:mm:ss format

Runnable r=new Runnable{
                public void run(){
                      String[] parts = s.split(":");
                      Calendar current = Calendar.getInstance();
                      //wait till current time is same as time received from intent
                      while(!(Integer.parseInt(parts[0]) == current.get(Calendar.HOUR_OF_DAY) &&
                              Integer.parseInt(parts[1]) == current.get(Calendar.MINUTE) )  )
                        {  current=Calendar.getInstance();  }
                       // do something after loop
                      }
Thread t= new Thread(r);
t.start();
return START_NOT_STICKY;
}

现在如果我在我的活动中多次调用startService,我发现创建了多个线程。 假设我用不同的意图调用了两次startservice,并且在我的程序中的某些时候我需要更改第一个线程的while循环中的条件,我该怎么做?

1 个答案:

答案 0 :(得分:0)

  

我需要在while循环中更改条件。

那么,你如何将条件封装在The price of $10 must be greater than cost of $20.中,并将其作为lambda传递给服务?