如何并行连续递增多个 RecyclerView 值

语境

处理RecyclerView每个都有标签和值TextViews以及开始的项目Button

目标

  • Button按下开始时开始并继续增加一个值

  • 必须可以通过其按钮单独启动每个项目的值

  • 一旦开始,多个值必须能够并行连续递增

问题

UI(值TextView、点击Button等)在 2 个或更多值开始增加后变慢。不确定如何处理线程(试过HandlerThreadrunOnUiThread,目前使用为每个单独的线程MyValue对象),看MyValue.start()代码的下方。

如何在RecyclerView不减慢 UI 的情况下在更新时并行连续递增单个值?

到目前为止已经尝试过什么

  • 使用HandlerThreadrunOnUiThread

  • Thread为每个MyValue对象单独使用

  • 考虑到AsyncTask但在未来,“增加多个值”行为可能需要在独立于后台运行Activity(即,仅Activity在前台时更新 GUI ),因此该行为可能会转移到BoundService

  • 可以使用 中的值LiveDataRecyclerView观察和更新项目MyValue,但是,不确定 LiveData 如何使用MyValueValuesAdapter

代码

主要活动


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);

    }


}


有只小跳蛙
浏览 162回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java