gpt4 book ai didi

java - 发送到 UI 线程的消息永远不会到达

转载 作者:行者123 更新时间:2023-12-02 02:38:38 25 4
gpt4 key购买 nike

到目前为止,这个主题已经讨论过很多次了,但仍然没有成功。

我的MainActivity有一个名为Handler mHandlerUi;的属性,该属性在其构造函数中初始化

mHandlerUi = new Handler() {
@Override
public void handleMessage(Message msg){
onMessageArrive(msg);
}
};

稍后在代码中,在另一个类中,在构造期间我初始化另一个 Handler 属性

mHandlerToUi = new Handler(Looper.getMainLooper());

因此,在线程的生命周期内,以下代码 fragment 会执行 X 次。

    Message msg = mHandlerToUi.obtainMessage();
msg.what = ConstMessages.MSG_NEW_GPS_POINT;
msg.setData(bundleContet);

mHandlerToUi.sendMessage(msg);

不幸的是,消息永远不会到达 MainActivity 的 Looper,两个线程使用相同的 UI 循环器,

我在这里错过了什么?

最佳答案

如果我理解正确的话,您已经启动了两个处理程序,并且想要将消息从一个处理程序传递到另一个处理程序?

也许您应该将处理程序传递给第二个类。所以在你的 MainActivity 中你有

mHandler = new Handler(Looper.getMainLooper()) {
@Override
public void handleMessage(Message inputMessage) {
onMessageArrive(msg);
}
}

并通过构造函数或setter方法将此mHandler传递给您的第二个类。

关于java - 发送到 UI 线程的消息永远不会到达,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45854390/

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