2

我编写了一个包含服务来执行工作的应用程序。主 Activity 有一个 UI,该 UI 在创建服务期间使用传递的消息进行更新。我的问题是,在主 Activity 初始创建服务期间,消息处理程序是有效的,并且可以很好地报告来自服务的消息。如果我按下“返回”或“主页”按钮,主 Activity 似乎已被丢弃,但服务仍在执行。

最后,当我再次启动应用程序时,我可以告诉服务正在运行(因为它通过蓝牙与硬件进行通信)但 UI 更新程序的句柄不再有效,并且应用程序没有收到状态更新。

那么,有没有办法获得服务的“句柄”或“意图”,这样我就可以将它传递给新的消息处理程序,或者有没有更好的方法来“分类”主活动,这样它就不会被破坏。

4

1 回答 1

0

请按照以下步骤操作,或者如果您正在执行此操作,请再次验证

  1. onbind()-->返回绑定器;
  2. 扩展一个名为 Binder 的类,覆盖从那里返回此服务引用的方法。
  3. 制作一个实用方法说:服务中的getText,它从服务返回数据
  4. 在您的主要活动中实现服务连接接口覆盖服务连接/断开的两个方法

5.on serviceconnected -> 使用 ibinder 对象调用 getService 方法将其转换回您的服务。

  1. 因此,现在您通过上述步骤获得了服务对象,现在您可以在主要活动中调用服务的 getText 方法,因此您可以说 -- String text_returned=your_service.getText()将此文本设置在您想要的任何位置。

我希望它有帮助。

于 2013-04-19T06:03:34.150 回答