Android开发:客户端实时获取数据库中的最新值并在界面显示

概述

最近在写一个程序,需求是服务器端的程序会不断刷新数据库某字段的值,然后需要写一个客户端程序不断读取该字段并在界面上显示。在这里数据库使用MySQL,Android客户端与服务器端的数据交互使用Volley框架。

前期准备

Volley是Google官方推出的HTTP方法库,使用Volley框架需要在Android Studio中引入对应的包,具体可以参照我以前的文章:
Android使用Volley框架进行数据传输

主要代码

整个的实现逻辑是用户点击“START”后,开始不断拉取数据库中对应字段的值,并对UI控件进行赋值。同时,设置标志位getAgain,其含义如下:
getAgain = true:当前读取操作已完成,进行下一次读取;
getAgain = false:Volley子线程正在读取数据库对应字段的值,读取操作进行阻塞。
代码如下:
1.声明标志位变量:

public static boolean getAgain = true;

2.“START” Button点击事件:

mBtnBegin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //开始循环刷新
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        //进行1000次读取操作
                        for(int i = 0; i < 1000; ++i){
                            //读取标志位判断
                            if(getAgain){
                                //进入读取状态
                                getAgain = false;
                                //从数据库拉取最新字段值
                                ShowMyCount(getApplicationContext(), LoginActivity.Username);
                                while (!getAgain){
                                    //数据读取中,进行阻塞
                                }
                            }
                        }
                    }
                }).start();
            }
        });

3.“ShowMyCount()”方法:

使用Volley框架与服务器进行交互可以查看上述的那篇文章,对于本文要实现的功能来讲,在“查询成功”的语句块中需要加入两个语句:

//查询成功,更新UI界面
mTvCount.setText(count);
//本次数据读取完成,取消阻塞状态
getAgain = true;

优化

1.在本文中更新UI界面的方式是直接在“ShowMyCount()”方法中使用setText()方法,但Android开发中,UI界面的更新一般是使用Handler机制。
2.本文的for循环循环了1000次以大致实现自动循环读取,但超过1000次后将不再更新UI界面,解决方法有两种:提升循环次数或改用while循环。

——————————————————————————
最后贴一下我的个人公众号:微信搜索“茶迁”或扫描下图。平时会更新一些编程相关的文章,欢迎大家关注~
茶迁

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
【资源说明】 该项目是个人毕设项目源码,评审分达到95分,都经过严格调试,确保可以运行!放心下载使用。 该项目资源主要针对计算机、自动化等相关专业的学生或从业者下载使用,也可作为期末课程设计、课程大作业、毕业设计等。 具有较高的学习借鉴价!基础能力强的可以在此基础上修改调整,以实现类似其他功能。 安卓Android生体育私教平台app可导入Studio毕业源码案例设计 ## 开发环境: Myclipse/Eclipse/Idea都可以(服务器端) + Eclipse(手机客户端) + mysql数据库 ## 系统客户端和服务器端架构技术: 界面层,业务逻辑层,数据层3层分离技术,MVC设计思想! ## 服务器和客户端数据通信格式: XML格式(用于传输查询的记录集)和json格式(用于传输单个的对象信息) ### (1)登录、注册。 体育私教、学生家长Android端。 管理员web端(通过超级管理员登录成功后,建立注册、注销普通管理员) ### (2)私教用户角色。 信息发布:自身情况介绍,收费情况,同时公布自身姓名、性别、年龄、手机号、城市、现状态(空闲、在忙)等相关信息 查询初生对体育私教的需求信息:通过年龄、性别、城市、现状态筛选。 体育私教基本信息管理:自身姓名、性别、年龄、手机号、城市、现状态(空闲、在忙)等相关信息 ### (3)学生家长用户角色。 信息发布:学生情况介绍,需求介绍。同时公布学生家长姓名、手机号、城市、学生年龄、学生性别、学生学校、现状态(空闲、在忙)等相关信息 查询体育私教信息:通过年龄、性别、城市、收费情况、现状态筛选。 初生及其家长个人信息的管理:家长姓名、手机号、城市、学生年龄、学生性别、学生学校、现状态(空闲、在忙)等相关信息 ### (4)管理员。 体育私教和初生家长的身份审核,用户注册即可以审核,通过则用户可以登录,不通过则不可以登录。 信息发布即可审核,不通过不可发布,通过成功才有显示 ## 实体ER属性: 私教: 用户名,登录密码,姓名,性别,年龄范围,年龄,手机号,城市,现状态,收费价格区间,价格(元/小时),教练照片,教练简介,审核状态,注册时间 学生家长: 用户名,登录密码,家长姓名,手机号,城市,学生性别,年龄范围,学生年龄,学生学校,现状态,学生照片,学生介绍,审核状态,注册时间 城市: 城市编号,城市名称 现状态: 状态id,状态名称 价格范围: 价格范围id,起始价,结束价,显示信息 年龄范围: 年龄范围id,开始年龄,结束年龄,显示信息 普通管理员: 管理员用户名,登录密码,姓名,性别,出生日期,联系电话
【资源说明】 该项目代码主要针对计算机、自动化等相关专业的学生从业者下载使用,项目代码都经过严格调试,确保可以运行!放心下载使用。 也可作为期末课程设计、课程大作业、毕业设计等。具有较高的学习借鉴价!也可直接当做个人项目使用。 ## 系统一共三个身份: 1 用户: 注册登录客户端app后可以查询附近的装修公司和装修套餐信息,其装修公司和套餐信息都有地图显示具体的位置,以及距离用户当前的距离,采用百度地图sdk实现,查询到自己喜欢的装修风格套餐可以下单后要求装修公司商家服务,用户可以对装修套餐服务质量好坏进行评价! 2 装修公司商家: 账号由管理员在web端后台添加,客户端登录后可以查询公司信息,可以发布装修套餐信息,管理自己装修公司已经发布的装修套餐信息,查询用户的装修订单,处理待装修的用户订单,装修过程修改对应的订单状态! 3 管理员:web端登录后台,可以管理所有的信息,包括注册用户信息,登记的装修公司信息,所有装修套餐信息,所有订单和评价信息等! ## 开发环境: Myclipse/Eclipse/Idea(服务器端) + Eclipse/AndroidStudio(手机客户端) + mysql数据库 ## 系统客户端和服务器端架构技术: 界面层,业务逻辑层,数据层3层分离技术,MVC设计思想! ## 服务器和客户端数据通信格式: XML格式(用于传输查询的记录集)和json格式(用于传输单个的对象信息)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

保温杯拖把风扇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值