首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android服务设计考虑

Android服务设计考虑
EN

Stack Overflow用户
提问于 2016-05-18 07:54:45
回答 2查看 63关注 0票数 0

我有以下问题。我正在开发一个android应用程序,需要执行以下操作:

  1. 它应该无限期地在后台运行(不可能,但接近无限期运行)并更新通知。
  2. 如果单击通知,则后台服务应在活动状态和非活动状态之间切换。
  3. 如果服务处于活动状态,则应读取传感器输入并对其作出响应。

现在,我尝试了IntentService,我发现停了一段时间后。所以现在我要转到正常的服务。但是,响应此通知单击的最佳方式是什么?服务应该扩展BroadcastReceiver以响应在通知单击中发送的广播,还是应该扩展SensorEventListener,因为它确实需要侦听传感器事件?如果我扩展了SensorEventListener,应该如何处理通知单击事件?

EN

回答 2

Stack Overflow用户

发布于 2016-05-18 08:01:52

当服务决定通知某件事情时,它可以通过NotificationManager在状态栏中创建一个通知。

当您点击NotificatonManager中的通知时,您可以启动Activity

创建此活动时,可以使用ServerConnection将其绑定到服务器,以便获取和显示任何相关数据。

票数 0
EN

Stack Overflow用户

发布于 2016-05-18 08:20:20

您的服务可以“抛出”通知,如下所述:注意事项

对于通知,可以设置在用户点击通知或通知中的某个控件时打开的活动。

要与服务通信,可以使用绑定服务:绑定服务在一个活动和一个或两个服务之间应用“客户机-服务器连接”。

根据服务生命周期,当服务处于活动状态或非活动状态时,您必须声明服务中的状态。通过解释提供给活动的通知的意图,您可以通过绑定(由Messenger应用)转发这一点,并将服务的状态从非活动状态更改为活动状态或从活动状态更改为非活动状态。

总括而言:

  1. 您可以在服务中定义两种状态(初始状态可能是“非活动状态”)。
  2. 启动应用程序时,绑定MainActivity和后台服务,以便它们能够通信(特别是您的活动可以告诉您的服务一些事情)。
  3. 当您绑定您的服务时,这也将启动它的生命周期,您可以在其中直接“抛出”带有"switch“的通知。将您的MainActivity添加到API中所描述的通知中。
  4. 当从点击通知返回到您的活动时,请使用Messenger定义该活动将发送到服务的内容。在服务中,定义一个单独的逻辑来切换状态。
  5. 抛出一个新通知以将状态切换回
  6. 在您的服务中,您可以通过SensorListener或其他任何方法收听传感器。

我希望这对你们有所帮助,因为这不是一个容易的任务,在这里张贴一个概念的证明是有点广泛的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37293480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档