gpt4 book ai didi

java - 将不可序列化的对象传递给处理程序(从子线程)

转载 作者:行者123 更新时间:2023-12-01 19:20:49 24 4
gpt4 key购买 nike

给您一些历史记录 - 我基本上试图将一个不可序列化的对象(Spanned)从子线程发送到主线程(通过消息)。我尝试了显而易见的方法 - 将其转换为字节数组并以这种方式发送,但这会出现错误,因为它没有实现可序列化。

还有其他方法可以使用 bundle 发送它吗?或者是其他东西?

这是我在子线程中发送消息的方式

// message and bundle for the questions explanation
Message qemsg = messageHandler.obtainMessage();

Bundle qeb = new Bundle();
qeb.putString("questionExplanations", questionExplanations);

qemsg.setData(qeb);
qemsg.arg1 = 0;
messageHandler.sendMessage(qemsg);

这里是主线程处理程序(接收子线程发送的消息):

private Handler messageHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
CFAData cd = CFAData.getSingletonObject();
Bundle summaryBundle = msg.getData();

switch(msg.arg1) {
case 0:
// receives the bundle here and does what it needs on the UI thread
//testQuestionsExplanations.append(spannedExplanationsObj);

break;
default:
break;
}
}
};

最佳答案

以下是将任意对象附加到消息的方法:

qemsg.obj = mySpanned;

关于java - 将不可序列化的对象传递给处理程序(从子线程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4365261/

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