241得票12回答
延迟一段时间后重复执行任务?

我的代码中有一个变量,比如说它叫做 "status"。 我想要根据这个变量的值在应用程序中显示一些文本。并且需要在特定的延迟时间后完成操作。 就像这样: 检查状态变量的值 显示一些文本 等待10秒钟 检查状态变量的值 显示一些文本 等待15秒钟 以此类推。延迟时间可能会有所不同,并...

75得票4回答
何时使用handler.post()和何时使用new Thread()?

我想知道何时应该使用handler.post(runnable);,何时应该使用new Thread(runnable).start();。 在Handler的开发者文档中提到: 将Runnable r添加到消息队列中。该runnable将在此处理程序附加的线程上运行。 这是否意味着...

26得票7回答
如何在后台线程上执行LiveData转换?

我需要将一个LiveData对象返回的一种类型的数据在后台线程上转换为另一种形式,以防止UI卡顿。 在我的具体情况下,我有: MyDBRow对象(由原始的long和String构成的POJO); 一个Room DAO实例通过LiveData<List<MyDBRow>&...

9得票2回答
如何让CoroutineScope(job+Dispatchers.Main)在主/UI线程上运行?

如果在CoroutineScope(job+Dispatchers.Main){...}内部的操作在主线程上运行,那么为什么它不违反Android的要求,即不允许在主/UI线程上运行缓慢(阻塞)的操作(如网络等)?我可以使用此作用域运行阻塞操作,而UI根本不会冻结。 如果有人能解释一下底层发...

8得票2回答
在Paging 3库中,默认情况下,PagingData是否在后台线程上运行?

使用 PagingData 时,是否像使用 PagedList 一样自动管理后台线程,并在主线程返回? 从下面的日志中看来,在 Paging 3 库中,与 Paging 2 库中的 PagedList 相比,PagingData 并未在后台线程上运行。 期望(基于 Paging Codel...