当前位置: 首页 > 面试题库 >

如何从后台服务更新Android活动中的信息

伏星汉
2023-03-14
问题内容

我正在尝试创建一个具有ActivityList信息的简单Android应用程序,当该应用程序启动时,我计划启动一个将不断计算数据(它将不断变化)的服务,并且我希望ActivityList与之同步服务在应用程序生命周期内正在计算的数据。

如何设置我的活动以收听服务?这是解决此问题的最佳方法吗?

例如,如果您想象一个股票价格列表,则该数据将定期更改,并且需要与不断计算/获取数据的(在我的情况下)服务保持同步。

提前致谢


问题答案:

如何设置我的活动以收听服务?这是解决此问题的最佳方法吗?

正如我所见,您有三个主要选择:

  1. 轮询。将Activity定期询问Service最新数据。恕我直言,这个选项很烂,但是肯定是可能的。

  2. 回调。根据jax的回答,将向Activity注册一个回调对象(“观察者”)ServiceService当数据更改时,该调用在回调上调用一个方法,从而更新UI。您可以Service 在此处看到使用该示例的示例。

  3. 广播Intents。该Service播放器Intent通过sendBroadcast()对数据的变化。的Activity一个寄存器BroadcastReceiver使用registerReceiver(),而且BroadcastReceiver被通知传入的广播。这会触发,Activity从中加载最新数据Service,或者可能只是从广播中的其他内容中获取最新数据Intent。您可以Service 在此处看到使用该技术的示例。



 类似资料:
  • 活动可以按以下方式访问此列表: 我的问题是,我要这样做: > 在函数中,我异步获取数据,首先检查数据库(房间)中的数据

  • 我正在构建一个android应用程序,我需要从后台开始一项活动。我正在使用ForegroundStarter来扩展服务,以实现这一点。我有一个活动屏幕。我需要从前台服务运行的类。活动的广告屏幕。除了Android10,其他所有Android版本的课程都可以正常运行(从后台开始)。 前场先发。班 我读到在Android10上从后台启动活动有一些限制。这个代码似乎不再有效了。https://devel

  • 我有一个后台服务,每12分钟更新一次位置。我们希望每5-6分钟测试一次位置更新,但在Android文档中我们发现: 为了降低功耗,Android8.0(API Level26)限制了后台应用程序检索用户当前位置的频率。应用程序每小时只能接收几次位置更新。 限制是每小时固定次数?

  • 好吧,所以我有点困惑该怎么处理这个。因此,我有了主活动,从那里可以启动一个活动到DegreePlan活动,从那里可以启动另一个活动到EditDegreeplan。我已经将EditDegreeplan设置为在Android清单中没有历史记录。问题是在他们保存EditDegreeplan后,它会启动一个活动到Degreeplan。因此,如果用户按下后退键,他们必须按两次才能再次进入主活动。我想摆脱它,

  • 问题内容: 我一直在为Android开发一个包含后台服务的PhoneGap应用程序。我的问题是:如何调试此服务?是否可以使用AVD进行调试并逐步进行?还是可以使用自己的设备来实现? 谢谢! 问题答案: 是的,可以使用AVD或设备来完成。查看http://www.helloandroid.com/tutorials/how-debug- service 和调试服务。

  • 我的背景粘性服务是杀死奥利奥和更高的设备,任何解决方案,以获得位置的背景服务时,活动是在后台