gpt4 book ai didi

java - 从 UI 线程调用 GattCallback 中的函数

转载 作者:行者123 更新时间:2023-11-30 02:13:23 25 4
gpt4 key购买 nike

  1. 我的情况:我正在使用 BLE 与传感器通信,将“ session ”对象作为字符串从传感器发送到 Android 设备。

当所有 session 都在 android 设备上时,我在 UI 线程上调用一个 session ,使用 Volley 将它们上传到服务器。 (调用“uploadSessions()”)

当所有 session 都在服务器上时(在我收到服务器确认已收到的响应后),我需要删除传感器的内存。 (onResponse 调用“sessionsSuccessfullyUploaded()”)

问题:我无法从 UI 线程访问 GattCallback 中的函数(无法从“sessionsSuccessfullyUploaded()”调用“eraseDevice()”)

  1. 我尝试过的:我尝试过循环,我在回调中这样做:

    public void waitForServerResponse() {

            int WAIT_INTERVAL = 500;
    new Handler().postDelayed(new Runnable() {
    @Override
    public void run () {

    if(sessionCountUploadedToServer == IBSessionCount) {
    eraseDevice();
    } else waitForServerResponse();

    }
    },WAIT_INTERVAL);
    }`

我收到这个错误:

java.lang.RuntimeException:无法在尚未调用 Looper.prepare() 的线程内创建处理程序

最佳答案

查看广播 Intent 和接收器。本文档可以帮助:

http://www.techotopia.com/index.php/Android_Broadcast_Intents_and_Broadcast_Receivers

将回调放在扩展 Service

的特殊蓝牙服务类中也有帮助

关于java - 从 UI 线程调用 GattCallback 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29793432/

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