为了给你一点历史 - 我基本上试图从子线程向主线程(通过Message)发送一个不可序列化的对象(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;
}
}
};
答案 0 :(得分:4)
以下是将任意对象附加到消息的方法:
qemsg.obj = mySpanned;