---恢复内容开始---

错误1

安卓的机制决定了只有UI线程(也就是主线程)才能更新UI界面

否则会导致UI界面混乱的问题

这就说明了在new Thread中直接showImage是会报“出现非主线程更新界面”的错误

错误2

尝试在一次点击事件中多次更新UI界面    或者   妄想在死循环中一直更新UI界面,会导致UI堵塞,如下图所示

错误3

这里正解是通过Android的Handler机制,在Runnable 中持续跟新UI,但是想用死循环在Runnable中的run 方法里持续显示,会出现错误2的问题

正解

1.创建全局变量 public Handler   handler =  new Handler();

2.在需要更新UI 界面的地方创建一个线程

new Thread(){

@Override
public void run(){//*********}

}

3.在run地方用handler的post方法,注意post()里应该传入一个Runnable对象,我们在创建时可以重新创建

4.在Runnable中重写run方法,在run方法里添加showImage,点击运行,完成了在线程跟新UI界面的操作

5.如果想持续更新UI线程,在showImage()后面添加  handler.postDelayed()方法,  方法中第一个参数传入的是Runnable对象,第二个为延时时长

这里我的Runnable对象传入的this,就完成了持续更新界面的操作

具体代码如下

button_start.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
isRunning = true;
    JNImethod(outMat1.getNativeObjAddr(),outMat2.getNativeObjAddr());
new Thread(){
@Override
public void run() {
handler.post(new Runnable() {
@Override
public void run()
{ showMatImage(outMat1, outMat2); //执行时间在4ms左右
handler.postDelayed(this, 100);
}
});
}
}.start();
}}); 我是在一个"开始"点击事件里添加的持续跟新UI界面的操作
我是通过慕课网上的视频学习做成的 传送门:https://www.imooc.com/learn/267
能力有限,有些地方表述不当,希望大家不吝赐教

---恢复内容结束---

解决安卓UI刷新卡屏,只显示最后一处刷新的问题的更多相关文章

  1. 安卓 apk 嵌入H5页面只显示部分

    安卓 apk 嵌入H5页面只显示部分(有空白页出现) 解决方案 没有加载的是js部分,需要在安卓那边加上一串代码 webView.getSetting().setDomStorageEnabled(t ...

  2. 安卓开发ScrollView嵌套ListView只显示一行

    在用列表控件做一个“更多功能”的界面的时候 <?xml version="1.0" encoding="utf-8"?> <ScrollVie ...

  3. EmguCV控件Emgu.CV.UI.ImageBox及C# picturebox显示图片连续刷新出现闪烁问题

    在上一篇里,EmguCV(OpenCV)实现高效显示汉字及叠加  实现了视频叠加及显示,但存在问题,就是 Emgu.CV.UI.ImageBox及C# picturebox显示图片时都会出现闪烁,尤其 ...

  4. win10 开机黑屏只显示鼠标

    最靓,win10开机黑屏,网上试了很多办法没有解决,花了3个小时终于解决了,现在介绍一下方法. 首先,在黑屏模式下进入任务管理器,文件=>运行新任务=>Explorer.exe 此时桌面已 ...

  5. Linux中OBS在Wayland环境下黑屏只显示鼠标的应对措施

    本文写于2018-02-10.截至到此文完成时,没有已知的方法可以让OBS在Wayland环境下正常工作. 解决方法 放弃使用Wayland,改用X Window 在Wanyland上录制屏幕,可以使 ...

  6. WPF Popup全屏 弹出方法。解决只显示75%的问题。

    WPF Popup全屏 弹出方法.解决只显示75%的问题.   WPF 中 Popup 有一个特点.当Popup的高度超过屏幕的75%的时候,只显示75%的高度. 如下代码: <Window x ...

  7. 解决:mui 的 选项卡 + 下拉刷新 功能,在其中嵌入 iframe 后,在 iphone 的情况下,iframe 的内容不能滚动,只显示第一屏内容。

    我所遇到的情况是,使用 mui 的 选项卡 + 下拉刷新 功能时,其中有2个页面是嵌入了别的网站的页面,而别个几个是通过 ajax 加载本网站的数据.然后 在其中嵌入 iframe 后,在 iphon ...

  8. win7系统的右键菜单只显示一个白色框不显示菜单项 解决办法

    如上图所示,桌面或其他大部分地方点击右键菜单,都只显示一个白色框,鼠标移上去才有菜单项看,并且效果很丑 解决办法: 计算机-右键-属性-高级-性能-设置-视觉效果-淡入淡出或滑动菜单到视图,将其前面的 ...

  9. ScrollView中嵌套GridView,ListView只显示一行的解决办法

    转载:http://blog.csdn.net/luohai859/article/details/39347583 关于为什么只显示一行,个人理解是:如果单独使用GridView和ListView, ...

随机推荐

  1. rimraf 跨平台删除文件

    利用npm script 来删除文件, "scripts": { "clear": "rm -rf dist" } 但存在一个问题,remo ...

  2. 20190404 Informatic 学习一

    ETL 1. Informatic 下载 下载地址:https://edelivery.oracle.com/osdc/faces/Home.jspx,没有账号可以自己注册一个Oracle账号. 不得 ...

  3. 2.jQuery介绍

    . jQuery的认识 jQuery的核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口:具有高效灵活的css选择器,并且可对CSS选择器进行扩展:拥有便捷的插件扩展机制和丰富的插件. 和原 ...

  4. Python基础学习之Python主要的数据分析工具总结

    Python主要是依靠众多的第三方库来增强它的数据处理能力的.常用的是Numpy库,Scipy库.Matplotlib库.Pandas库.Scikit-Learn库等. 常规版本的python需要在安 ...

  5. 024-母版页MasterPage

    网站的布局通常是统一的,上面是Logo.菜单条.下面是公司地址.版权声明等.如果每个页面都重复做这些功能的话:重复性劳动.一旦修改那么每个页面都要修改..Net中一般用母版(MasterPage)技术 ...

  6. Unicode编码与中文互转

    /** * unicode编码转换为汉字 * @param unicodeStr 待转化的编码 * @return 返回转化后的汉子 */ public static String UnicodeTo ...

  7. Jumpserver(跳板机、堡垒机)启动jms Django连接mysql数据库报错

    解决办法 根据报错信息 , 去查看官方手册 在settings.py文件夹加入DATABASES['OPTIONS']['init_command'] = "SET sql_mode='ST ...

  8. 4.Python3运算符

    4.1算数运算符(以下假设变量a为10,变量b为21) 实例操作: print(3 + 5) #数字3与5相加 print(3 - 5) #数字3与5相减 print(3 * 5) #数字3与5相乘 ...

  9. LinkedHashMap和HashTable

    LinkedHashMap: 继承了HashMap: 其中,key不允许重复是Map接口就有的性质: HashTable: 同步的,意味着是单线程,意味着线程安全的,但是速度慢,和List接口集合的子 ...

  10. vue深入响应式原理

    vue深入响应式原理 深入响应式原理 — Vue.jshttps://cn.vuejs.org/v2/guide/reactivity.html 注意:这里说的响应式不是bootsharp那种前端UI ...