Android:这是活动和片段中线程之间通信的良好模式吗?

时间:2016-08-04 07:41:54

标签: java android multithreading android-fragments message-queue

我在Android应用程序中使用 HandlerThread 类进行线程通信。

主UI线程(Activity)拥有自己的处理程序,其 handleMessage(Message)覆盖以接受消息并处理它。

创建了

HandlerThread ,它们使用主线程的处理程序向其发送消息。

现在当片段进入时会出现复杂性, 片段在UI线程(主)上运行,所以我不能在片段类中为同一主线程提供另一个处理程序。

所以我想到的解决方案是,

  • 通过参数包发送主线程处理程序的引用。
  • 使用该引用获取消息对象并在片段类中创建的线程中发送消息。
  • 活动通过预定义的界面将此消息转发给片段。
  • 最后,片段从它开始的线程接收消息。

这是一个好的,合理的模式吗?还是坏的?有更好的方法吗?

请分享您对此的了解。

谢谢你, 问候, 阿济斯

1 个答案:

答案 0 :(得分:0)

我不确切知道你使用这种模式究竟想要实现的目标

但建议是,托管活动应该被视为管理所有操作,可以通过接口来完成,托管活动将从某些事件的片段接收回调。