随着IntentService完成其工作。是否可以从UI线程启动另一个线程,但不能从活动开始?

时间:2016-07-14 20:49:41

标签: android multithreading android-intentservice

IntentService有自己的线程,从handleIntent启动另一个线程,该服务被认为是实时或已完成的服务并不重要另一个线程是活动的还是不是? 一旦IntentService完成其工作,是否可以返回主线程并调用另一个线程,但另一个线程的开始可能来自主线程而不是来自活动,因为服务可以在任何活动期间完成其工作

1 个答案:

答案 0 :(得分:0)

  

IntentService有自己的线程,从另一个线程开始   handleIntent

不要那样做。一旦IntentService的{​​{1}}方法返回,服务就会被销毁,并且该过程也可能被杀死。 Android不知道你启动了什么线程,所以它知道你的进程是空闲的并浪费资源。

如果您需要在onHandleIntent()完成后“启动”其他内容,请使用IntentServicestartActivity()startService()(以适当者为准)。同样,Android不知道你的线程。

如果您需要过程调用语义(例如,启动服务,让它执行某些任务,然后将控制权返回给调用者),sendBroadcast()不是正确的工具。如果需要跨越流程边界,请使用绑定服务(或绑定的AIDL服务)。