UI以编程方式添加许多视图时冻结

时间:2017-04-05 12:35:11

标签: android

我有数百种布局的视图(带有TextView的Linears),基本上它就像带有数据的列表一样。

我的演示者在查询数据库(sqlbrite,rxjava,它的异步)调用方法之后,只是使用textview创建线性并将其添加到其他一些Linear(每个添加的视图的父级)

我的旧手机上有超过100行的数据会冻结。我怎样才能减少它?当然,我无法在除UI之外的其他线程上添加视图。

1 个答案:

答案 0 :(得分:1)

  1. 首先,您需要使用回收站视图查看视图列表。而且,你可以使用100个不同类型的视图和ViewTypes的recycler view
  2. 其次,如果您坚持不使用回收站视图,那么您最好使用AsyncTask来添加视图。因为在AsyncTask的某些方法中,您可以访问UI线程并可以添加元素。
  3. 第三种可能性是使用事件总线。您将向片段/活动添加一个方法并将其注册到事件总线。使它在标签的后台运行(java标签)。并从后台线程调用它来添加项目(视图)
  4. 希望其中一些可以解决你的问题:)如果没有回复我对问题的更多解释。

    P.S EventBus是一个与BroadcastReceivers几乎相同的图书馆工作,但它具有更多功能,也更有效。