代码之家  ›  专栏  ›  技术社区  ›  Andrew

线程运行时在服务中调用stopSelf()

  •  19
  • Andrew  · 技术社区  · 16 年前

    假设我在服务的onStart()处理程序中有代码来启动一个线程来做一些事情,然后调用stopSelf()。

    在线程完成之前调用stopSelf()。到底发生了什么?

    我自己已经测试过了,我的线程继续执行,直到它完成。Android是否听到stopSelf()调用,但将其推迟到线程完成?

     @Override
     public void onStart(Intent intent, int startid) {
      new Thread(new Runnable() {
          public void run() {
            // TODO some long running operation
          }
        }).start();
      stopSelf();
     }
    
    2 回复  |  直到 16 年前
        1
  •  21
  •   CommonsWare    16 年前

    在线程完成之前调用stopSelf()。到底发生了什么?

    线程运行到完成。

    Android是否听到stopSelf()调用,但将其推迟到线程完成?

    不,你的 Service stopSelf() 对象,至少直到线程终止。

    您可能希望考虑切换到 IntentService ,因为它集成了后台线程和- stopSelf() 图案。

        2
  •  1
  •   vishnu pratap singh    14 年前