android - runOnUiThread 如何在以下代码中工作而不影响现有的 UI 线程
问题描述
在下面的代码
中我们使用runOnUiThread
的方式
不应该与现有的 UI 线程
产生问题,因此会产生应用程序的问题,因此不应该使用
Thread thread = new Thread(new Runnable(){
@Override
public void run(){
//what is meant by the inside code of this run(), how is this updating the UI
runOnUiThread(new Runnable(){
@Override
public void run(){
}
})
}
})
解决方案
在android中,对于长时间运行的任务,您应该使用单独的线程,例如AsyncTask()
或服务。假设您想更新您的UI,就像您想向用户显示任何Toast一样,那么您应该编写runOnUiThread()
,因为只有UI线程才允许触摸UI组件。
getActivity().runOnUiThread(new Runnable()
{
@Override
public void run() {
Toast.makeText(getContext(), "API calling done!!", Toast.LENGTH_LONG).show();
}
});
推荐阅读
- c# - FontFamily 导入不适用于 Visual Studio 中的 C# Xamarin
- javascript - 你能在 JavaScript 中将一个变量声明为另一个变量的内容吗?
- r - cor() 热图也考虑了滞后?
- python-3.x - FASTA 文件中运行脚本中的 KeyError 'c'?
- python - 取消缓冲时,Unix 脚本命令会中断终端
- javascript - 当前一个流接收到第一个值时,RxJS 合并
- git - 如何验证我签出了正确的代码?
- typescript - Typescript - @types/uniqid - 使用命名空间和 require("uniqid") 的问题
- javascript - 使用 Javascript 为页面上的多个按钮启动 onClick() 事件
- spring-boot - 如何使用springboot在json响应中添加@ManyToOne列?