0

我正在使用 sendOrderedBroadcast 收集一些数据。在 resultReceiver 我解析这个数据,但这个操作可能需要几秒钟。

现在 sendOrderedBroadcast 有这个“Handler scheduler”参数,这似乎是我需要的,但不幸的是我真的不知道如何使用它。我需要的是在不同的线程上处理 resultReceiver 。怎么做?

编辑:重新表述问题:在广播接收器中,我需要解析大量数据,构造视图对象并将它们添加到 ArrayList。这会阻止用户界面。如何在不阻塞 UI 的情况下做到这一点?...我可以创建新线程,但我不能从那里创建 View 对象...

4

1 回答 1

0

看起来你宁愿审查你的设计。

无论如何,视图对象的构建都需要在 UI 上完成。在那里完成的繁重工作量取决于您如何设计数据以在视点构建时可用。

AsyncTask当您收到结果时,您可以生成一个将解析数据的方法。从中返回另一个对象列表,这可能是一个精简版本 (DTO),它将具有创建视图对象所需的属性。不要在 getter 中编写解析逻辑。保持简单。这将有助于减少阻塞 UI 的时间。

于 2013-06-03T07:19:27.117 回答