语境
处理RecyclerView
每个都有标签和值TextViews
以及开始的项目Button
。
目标
Button
按下开始时开始并继续增加一个值
必须可以通过其按钮单独启动每个项目的值
一旦开始,多个值必须能够并行连续递增
问题
UI(值TextView
、点击Button
等)在 2 个或更多值开始增加后变慢。不确定如何处理线程(试过HandlerThread
/ runOnUiThread
,目前使用为每个单独的线程MyValue
对象),看MyValue.start()
在代码的下方。
如何在RecyclerView
不减慢 UI 的情况下在更新时并行连续递增单个值?
到目前为止已经尝试过什么
使用HandlerThread
和runOnUiThread
Thread
为每个MyValue
对象单独使用
考虑到AsyncTask
但在未来,“增加多个值”行为可能需要在独立于后台运行Activity
(即,仅Activity
在前台时更新 GUI ),因此该行为可能会转移到BoundService
可以使用 中的值LiveData
来RecyclerView
观察和更新项目MyValue
,但是,不确定 LiveData 如何使用MyValue
和ValuesAdapter
代码
主要活动
public class MainActivity extends AppCompatActivity {
ArrayList<MyValue> mValues;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RecyclerView recyclerView = findViewById(R.id.recycler_view);
recyclerView.setHasFixedSize(true);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(linearLayoutManager);
mValues = new ArrayList<>();
mValues.add(new MyValue("value 1"));
mValues.add(new MyValue("value 2"));
mValues.add(new MyValue("value 3"));
ValuesAdapter valuesAdapter = new ValuesAdapter(mValues);
recyclerView.setAdapter(valuesAdapter);
}
}
相关分类