我创建了一个应用程序,如果两个值不同步(例如,3个中的2个),则应用程序关闭时需要运行意图服务。意图服务更新我的应用程序中的文本视图,该视图将使用BroadcastReceiver显示这两个值。
此外,意图服务在一个活动中创建,但应在另一个活动中停止。这两个值基于GPS位置更新,并且该位置通过Web服务方法发送。在点上GPS可以更新位置,并且web服务可能不会由于与移动数据/ wifi的有限连接而因此使得值失去平衡(1/3)并且如果用户关闭应用程序,则需要持续运行直到值达到3 of 3(应用程序关闭时GPS停止更新)。
即使应用程序已关闭,intent仍应运行,直到值再次同步为止。如何在应用程序关闭时保持此运行,然后在值同步时停止它
答案 0 :(得分:0)
因为IntentService就像一个Thread。它被设计为在完成onHandleIntent()时运行。
如果要管理生命周期,请使用常规服务并使用stopService或stopself()进行控制。
编辑:顺便说一下,为什么要混合使用asynctask和intentservices?使用其中一个,但不要混合它。 AsyncTask处理所有。背景主题中的线程和处理。无论如何,对于使用GPS,您应该决定使用常规服务,并且(可能)在服务onStartCommand()中创建一个线程。