我有一个Android服务在与客户端不同的进程中运行,并且只在客户端连接时才运行。我想知道在它的生命周期中究竟是否接受来自客户端的请求?Android服务在其生命周期中何时可用?
我在服务生命周期的早期/晚期发出请求时遇到问题。据我所知,每个请求都是在与主Service线程分开的线程中处理的。我有以下问题:
- 请求由服务在Service.onCreate()之前或期间处理。我已经看到尝试使用在我的Service.onCreate()中初始化的资源的异常,但它们为空,并且日志记录证实主Service线程位于onCreate()中。
- 请求在Service.onDestroy()期间或之后由服务处理。异常和日志记录再一次证实一个线程正在处理请求并尝试使用已经在onDestroy()中释放的资源。
Android可以允许对未完全初始化或销毁的服务发出请求吗?
你试过使用隐式意图吗? – 2011-11-18 13:58:02
尝试利用主线程中的所有功能。创建一个单独的线程会给你记忆问题。在异步任务中启动您的服务,然后在PreExecute上启动您的服务。你可以在PostExecute上停止你的服务,但这是根据你的程序的功能 – 2011-11-18 13:59:54
你的问题是相当误导。无论何时客户发送相应的意图或与其绑定,服务就是或者变得“可用”。 * Thread *的生存时间应该由服务来控制 - 反之亦然。当服务尚未创建时,工作线程如何处理请求? – JimmyB