相关疑难解决方法(0)

如何让Android服务与Activity通信

我正在编写我的第一个Android应用程序,并试图了解服务和活动之间的沟通.我有一个将在后台运行的服务,并执行一些基于gps和时间的日志记录.我将有一个用于启动和停止服务的活动.

首先,我需要能够在Activity启动时确定服务是否正在运行.这里还有其他一些问题,所以我想我可以搞清楚(但随意提供建议).

我的真正问题:如果Activity正在运行且服务已启动,我需要一种方法让服务向Activity发送消息.此时简单的字符串和整数 - 主要是状态消息.消息不会定期发生,因此如果有其他方法,我认为轮询服务不是一个好方法.我只想在用户启动Activity时进行此通信 - 我不想从服务启动Activity.换句话说,如果您启动Activity并且服务正在运行,那么当有趣的事情发生时,您将在Activity UI中看到一些状态消息.如果你没有启动Activity,你将看不到这些消息(它们并不那么有趣).

看起来我应该能够确定服务是否正在运行,如果是,则将Activity添加为侦听器.然后在"活动"暂停或停止时将"活动"作为侦听器删除.这有可能吗?我能想到的唯一方法是让Activity实现Parcelable并构建一个AIDL文件,这样我就可以通过Service的远程接口传递它.这看起来有点矫枉过正,我不知道Activity应该如何实现writeToParcel()/ readFromParcel().

有更简单或更好的方法吗?谢谢你的帮助.

编辑:

对于后来对此感兴趣的任何人,都有来自Google的示例代码,用于通过示例目录中的AIDL处理此问题:/apis/app/RemoteService.java

android android-service android-activity

245
推荐指数
8
解决办法
15万
查看次数

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

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

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

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

提前致谢

java android android-listview observer-pattern

39
推荐指数
1
解决办法
3万
查看次数