在我的Android应用中,一个服务在后台运行,并将GPS读数记录到数据库中。用户会看到一个活动页面,其中呈现给他们一组单选按钮。我希望还能将他们当前选定的单选按钮记录到数据库中。如何从服务中访问单选按钮对象?
假设您的服务与活动在同一进程中,则一种简单的方法是使用共享首选项文件。每当单选按钮更改时,活动可以写入首选项文件,服务可以在写入数据库时注册首选项上的侦听器或检查状态。更复杂的方法是避免使用首选项,让服务使用Context.startService()启动(即使活动不在周围,它仍然保持运行),然后让活动调用Context.bindService()(如果服务没有运行,则启动服务)来返回它可以通信的IBinder存根。对于这种方法,建议您查看Service API Demos。