gpt4 book ai didi

java - 如何在应用程序的 UI 部分找到服务的 "Handle"或编写主要 Activity 的更好方法

转载 作者:行者123 更新时间:2023-11-29 09:06:32 25 4
gpt4 key购买 nike

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

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

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

最佳答案

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

  1. onbind()-->返回ibinder;
  2. 扩展一个名为 Binder 的类,覆盖从那里返回此服务引用的方法。
  3. 创建一个实用方法:在您的服务中获取从服务返回数据的 getText
  4. 在您的主要 Activity 中实现服务连接接口(interface)覆盖服务连接/断开连接的两个方法

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

  1. 现在您通过上述步骤获得了服务对象,现在您可以在主 Activity 中调用服务的 getText 方法,这样您就可以说 --String text_returned=your_service.getText()在任何你想要的地方设置这个文本。

希望对您有所帮助。

关于java - 如何在应用程序的 UI 部分找到服务的 "Handle"或编写主要 Activity 的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14688484/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com