1

所以我想做的只是每隔一段时间更新一个活动的视图,比如每秒一次。在这种特定情况下,只有几个按钮,而我只想更改它们的文本。我在这里阅读了很多针对相同问题的问题,但我似乎比其他人更受困,我将把这归咎于我对 Android 的有限体验(这实际上意味着,我不明白提出的解决方案,或者无法识别示例代码中的核心思想,而这实际上是我第一次尝试为 Android 编程)。

由于我想要一个服务来拥有数据(及其创建),我想到了对活动的回调,这就是我在过去几个小时里一直在尝试的。我所拥有的是一项服务onCreate()onStartCommand()而且onDestroy()基本上,这很好。我在 android 清单文件中注册了它,并成功地将它变为现实(我正在记录生命周期方法)。

但我怎么去

  • 使用服务中的数据经常更新视图

  • 为服务提供它所依赖的某些信息(比如通知它按钮事件)

谢谢你的帮助!

4

3 回答 3

1

从官方 Android 文档中阅读有关绑定到服务的信息。

它应该回答你所有的问题。

基本上,这个想法是你“绑定”到一个服务,这样做会给你服务对象。从那里,您可以直接调用服务的方法。在您的情况下,您可能需要在服务中声明一个名为 notifyButton1Pressed() 或类似的方法。

要在间隔内刷新 Activity 的视图,请使用 TimerTask 和 Timer。如果您通过 Google 进行研究,这些都是不言自明的。

于 2012-08-14T22:56:49.930 回答
0

实际上有一种非常简单的方法可以使用 aTimer和 a从自身内部更新活动android.os.Handler。这个想法是为活动提供一个IUpdateable公开更新方法的接口(例如)。然后扩展TimerTask(Handler, IUpdateable)作为参数并保留对它的引用。在TimerTask'run()方法中,调用 eg updateableActivity.update()。在活动中,实例化 aTimer和 schedule new UpdateTask(new Handler(), this);
这样你就有了一个实际可重用的方法(使用接口可以在任何活动中轻松实现)。如果不清楚,请查看此要点

于 2013-09-07T22:07:55.663 回答
0

为了更新您的activityfrom service,您必须在您register的. 在你做你的更新,在服务中,你必须对你的活动。和之间的信息你可以通过它发送。BroadcastReceiveractivityreceiversendBroadcastactivityserviceIntentsendBroadcast

于 2012-08-15T01:47:11.910 回答