从Service with Thread返回START_STICKY

时间:2016-01-07 12:17:33

标签: android multithreading android-service

我创建的Service在启动时使用Thread。我想在我的应用程序关闭(START_STICKY)时保持服务正常运行。

要使服务继续运行,我必须返回START_STICKY

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
     new Thread( new Runnable() {
        @Override
        public void run() {
            while(true) {
              try {
                    Thread.sleep(2000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }).start();
    return START_STICKY;
}

如何用我的帖子返回它?

1 个答案:

答案 0 :(得分:0)

这似乎是对Thread概念的误解。您在tri_seq |> Seq.take 10 |> Seq.map (fun n -> printfn "%d" n) 中启动的主题并未阻止"返回的方法。这里发生的事情如下:

  1. onStartCommand()在一些线程(可能是主线程)上被调用
  2. onStartCommand()会立即返回,然后从Thread.start()onStartCommand()标志返回。
  3. 因此,至少有两个线程正在运行,其中START_STICKY已被调用,另一个执行onStartCommand()方法。