我的应用程序本质上是一个在启动时启动的服务(由启动完成的接收器),应该定期收集数据,通过网络发送数据,然后进入睡眠状态(可能使用 AlarmManager)。它没有任何活动 - 没有任何 UI。
是否有任何理由产生一个额外的线程来执行应用程序逻辑?如果没有,我应该在哪里执行逻辑?在 OnStart 方法中?
我的应用程序本质上是一个在启动时启动的服务(由启动完成的接收器),应该定期收集数据,通过网络发送数据,然后进入睡眠状态(可能使用 AlarmManager)。它没有任何活动 - 没有任何 UI。
是否有任何理由产生一个额外的线程来执行应用程序逻辑?如果没有,我应该在哪里执行逻辑?在 OnStart 方法中?
是否有任何理由产生一个额外的线程来执行应用程序逻辑?
绝对地。如果在 5-10 秒内没有响应,您的服务将被终止。没有什么能在这段时间内占用主应用程序线程。
我推荐一个IntentService
用于AlarmManager
. 特别是,如果您希望设备在您正在做的任何事情时保持清醒,您可以考虑使用我的WakefulIntentService
.
此外,关于“无 UI”,如果您打算通过 Android Market 分发此应用程序,请记住用户似乎不喜欢没有 UI 的应用程序。他们安装它,当启动器中没有图标时会感到困惑,并给你一星评级。即使您不需要 UI 来进行实际操作,您也可以考虑在启动器中至少有一些活动,显示文档,可能是正在完成的工作日志,允许调整工作频率等。