代码之家  ›  专栏  ›  技术社区  ›  rony l

如果我的android应用程序没有UI,我应该在单独的线程中工作吗?

  •  4
  • rony l  · 技术社区  · 14 年前

    我的应用程序本质上是一个在启动时启动的服务(由启动完成的接收器启动),应该定期收集数据,通过网络发送,然后进入睡眠状态(可能使用AlarmManager)。它没有任何活动-没有任何用户界面。

    是否有理由生成一个额外的线程来执行应用程序逻辑? 如果没有,我应该在哪里执行逻辑?在OnStart方法中?

    1 回复  |  直到 14 年前
        1
  •  4
  •   CommonsWare    14 年前

    是否有理由生成一个额外的线程来执行应用程序逻辑?

    当然。如果您的服务在5-10秒内没有响应,它将被终止。在这段时间内,任何东西都无法绑定主应用程序线程。

    我建议 IntentService 用于 AlarmManager . 特别是,如果你想让设备在你做任何事情的时候保持清醒,你可以考虑 WakefulIntentService .

    另外,关于“没有任何用户界面”,如果你打算通过Android市场发布这个应用程序,请记住用户似乎不喜欢没有用户界面的应用程序。他们会安装它,当启动程序中没有图标时会感到困惑,并给你一个星级。即使您不需要UI来进行实际操作,您也可以考虑在启动程序中至少有一些活动,这些活动显示文档,可能是正在完成的工作日志,允许调整工作的频率等。