我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Android 实现界面刷新的几种方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Android 实现界面刷新的几种方法

Android 界面刷新

 Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中调用。

Android程序中可以使用的界面刷新方法有两种,分别是利用Handler和利用postInvalidate()来实现在线程中刷新界面。

利用Handler刷新界面

实例化一个Handler对象,并重写handleMessage方法调用invalidate()实现界面刷新;而在线程中通过sendMessage发送界面更新消息。


    // 在onCreate()中开启线程
    new Thread(new GameThread()).start();、
    // 实例化一个handler
    Handler myHandler  = new Handler()
    {
       //接收到消息后处理
       public void handleMessage(Message msg)
       {
           switch (msg.what)
           {
           case Activity01.REFRESH:
              mGameView.invalidate();    //刷新界面
              break;
           }
           super.handleMessage(msg);
       }         
    };
    class GameThread implements Runnable
    {
       public void run()
       {
           while (!Thread.currentThread().isInterrupted())
           {
              Message message = new Message();
              message.what = Activity01.REFRESH;
              //发送消息
              Activity01.this.myHandler.sendMessage(message);
              try
              {
                  Thread.sleep(100);
              }
              catch (InterruptedException e)
              {
                  Thread.currentThread().interrupt();
              }
           }
       }
    }

使用postInvalidate()刷新界面

使用postInvalidate则比较简单,不需要handler,直接在线程中调用postInvalidate即可。


 class GameThread implements Runnable
    {
       public void run()
       {
           while (!Thread.currentThread().isInterrupted())
           {
              try
              {
                  Thread.sleep(100);
              }
              catch (InterruptedException e)
              {
                  Thread.currentThread().interrupt();
              }
              //使用postInvalidate可以直接在线程中更新界面
              mGameView.postInvalidate();
           }
       }
    }

参考:

Android应用开发揭秘

Android文档

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

您可能感兴趣的文章:Android 自定义可拖拽View界面渲染刷新后不会自动回到起始位置Android中刷新界面的二种方法Android界面刷新的方法分享Android 模仿iPhone列表数据View刷新动画详解android中ListView数据刷新时的同步方法Android控制界面刷新技巧汇总


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Android 实现界面刷新的几种方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Android 实现界面刷新的几种方法

Android 界面刷新 Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中调用。 An
2022-06-06

Android中刷新界面的二种方法

Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中调用。 Android界面刷新方法有两种
2022-06-06

Android界面刷新的方法分享

Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中调用。 Android程序中可以使用的界
2022-06-06

uniapp实现下拉刷新的几种方式小结

原生的uniapp的下拉刷新是一个普通的加载框,样式真的很单一,下面这篇文章主要总结介绍了uniapp实现下拉刷新的几种方式,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2023-02-16

Vue实现当前页面刷新的4种方法举例

我们在开发vue的页面的时候,有时候会遇到需要刷新当前页面功能,但是vue框架自带的router是不支持刷新当前页面功能,下面这篇文章主要给大家介绍了关于Vue实现当前页面刷新的4种方法,需要的朋友可以参考下
2023-05-18

android 引导界面的实现方法

代码如下:顺序是: OneAcitivity -->MainActivity -> TwoActivity 然后第2次进去就是:OneActivity -> TwoActi
2022-06-06

Android中ListView下拉刷新的实现方法

ListView中的下拉刷新是非常常见的,也是经常使用的,看到有很多同学想要,那我就整理一下,供大家参考。那我就不解释,直接上代码了。这里需要自己重写一下ListView,重写代码如下:package net.loonggg.listvie
2022-06-06

django+js+ajax实现刷新页面的方法

本文实例讲述了django+js+ajax实现刷新页面的方法。分享给大家供大家参考,具体如下: 在服务器开发的时候,为了方便将服务器对外开一个接口来操作,可以使用django制作网页,通过页面来操作服务器。这样可以将服务器的维护工作暴漏在更
2022-06-04

ListView中实现部分刷新的两种方法

在ListView中实现部分刷新的两种方法如下:1. 使用notifyDataSetChanged()方法刷新整个ListView:这是最简单的方法,通过调用Adapter的notifyDataSetChanged()方法来刷新整个List
2023-09-20

Android编程之界面实现全屏显示的方法(2种方法)

本文实例讲述了Android编程之界面实现全屏显示的方法。分享给大家供大家参考,具体如下: 在开发android的应用当中,我们会遇到将一些界面设置为全屏显示的格式,有两种实现的方法。其一是在Java代码中实现,其二是在配置文件中实现。 1
2022-06-06

Android UI更新的几种方法总结

Android UI更新 做过Android开发的人都遇到过这样的问题:随着需求的变化,某些入口界面会出现UI的增减、内容变化和跳转界面变化等问题,这里就说明几种方法来实现 UI的更新。 1、Activity的 runOnUiThread
2022-06-06

详解Android UI更新的几种方法

前言在android开发中,界面UI的更新都是在主线程来完成的。线程分为主线程(Main Thread,简称MT)和工作线程(Work Thread,简称WT),我们通常会在WT中执行一些比较耗时的操作,比如下载,网络,缓存等,然后在将结果
2023-05-31

Android亮度调节的几种实现方法

最近在做一个App的设置项,亮度调节。真正做时,发现Android亮度调节比预想要复杂一些。其实目前网上已有不少这方面的资料,但有些博文具有一定误导性。在此将这块内容按照自己理解整理一下。 整体上看,Android亮度调节分为三个层次,分别
2022-06-06

Android实现延迟的几种方法小结

本文实例总结了Android实现延迟的几种方法。分享给大家供大家参考,具体如下: 一、通过Threadnew Thread(){ public void run(){ sleep(***); } }.start();通过ProgressDi
2022-06-06

Android RecyclerView设置下拉刷新的实现方法

Android RecyclerView设置下拉刷新的实现方法1 集成 SwipeRefreshLayout1.1 xml布局文件中使用
2023-05-30

Vue实现刷新当前页面的三种方式总结

项目当中如果做新增/修改/删除等等操作通常情况下都需要刷新数据或者刷新当前页面。本文为大家整理了三种不同的实现方法,需要的可以参考一下
2023-01-14

编程热搜

  • Android:VolumeShaper
    VolumeShaper(支持版本改一下,minsdkversion:26,android8.0(api26)进一步学习对声音的编辑,可以让音频的声音有变化的播放 VolumeShaper.Configuration的三个参数 durati
    Android:VolumeShaper
  • Android崩溃异常捕获方法
    开发中最让人头疼的是应用突然爆炸,然后跳回到桌面。而且我们常常不知道这种状况会何时出现,在应用调试阶段还好,还可以通过调试工具的日志查看错误出现在哪里。但平时使用的时候给你闹崩溃,那你就欲哭无泪了。 那么今天主要讲一下如何去捕捉系统出现的U
    Android崩溃异常捕获方法
  • android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
    系统的设置–>电池–>使用情况中,统计的能耗的使用情况也是以power_profile.xml的value作为基础参数的1、我的手机中power_profile.xml的内容: HTC t328w代码如下:
    android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
  • Android SQLite数据库基本操作方法
    程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数
    Android SQLite数据库基本操作方法
  • ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
    工作的时候为了方便直接打开编辑文件,一些常用的软件或者文件我们会放在桌面,但是在ubuntu20.04下直接直接拖拽文件到桌面根本没有效果,在进入桌面后发现软件列表中的软件只能收藏到面板,无法复制到桌面使用,不知道为什么会这样,似乎并不是很
    ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
  • android获取当前手机号示例程序
    代码如下: public String getLocalNumber() { TelephonyManager tManager =
    android获取当前手机号示例程序
  • Android音视频开发(三)TextureView
    简介 TextureView与SurfaceView类似,可用于显示视频或OpenGL场景。 与SurfaceView的区别 SurfaceView不能使用变换和缩放等操作,不能叠加(Overlay)两个SurfaceView。 Textu
    Android音视频开发(三)TextureView
  • android获取屏幕高度和宽度的实现方法
    本文实例讲述了android获取屏幕高度和宽度的实现方法。分享给大家供大家参考。具体分析如下: 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸 下面的代码即
    android获取屏幕高度和宽度的实现方法
  • Android自定义popupwindow实例代码
    先来看看效果图:一、布局
  • Android第一次实验
    一、实验原理 1.1实验目标 编程实现用户名与密码的存储与调用。 1.2实验要求 设计用户登录界面、登录成功界面、用户注册界面,用户注册时,将其用户名、密码保存到SharedPreference中,登录时输入用户名、密码,读取SharedP
    Android第一次实验

目录