从无到有创建一个聊天App之番外篇一

发表一下感概

这两天一直在撸代码,进度非常慢,其实逻辑倒不是很复杂,一个是时间和精力有限,每天也仅仅有两三小时的时间。还有一个是技术不熟悉,也是边学边做,所以耗费了不少时间。不过想来也是值得的,毕竟学到了不少新技术。虽然用以前的方法也能实现,但是那样就没有意义了,不是吗?

一个协程的用法——回到主线程

昨天在写用户基本信息提交,突发奇想,决定使用协程来提交数据。我需要启动协程提交完数据之后,回到主线程,因为我要做一些UI操作。协程的介绍文章很多,但是几乎千篇一律,仅仅是针对Kotlin的协程语法做介绍,对于这种Android特殊的回到UI线程却谈的太少。后来我还是在买的书中发现了解决方法,废话不说直接上代码。

    private fun updateUserBasic() = runBlocking {
        val loadingProgressBar = ProgressDialog.show(this@UserBasicActivity, null, getString(R.string.loading))
        var resultCode = -10
        val updateJob = launch(CommonPool) {
            resultCode = UserManager.updateUserBasic(userId!!, sex, ageRange, liveProvince)
        }
        updateJob.join()
        loadingProgressBar.dismiss()
    }

协程优点就是虽然是异步操作,但是却是同步的写法,不会陷入各种回调的陷阱里。其中updateJob.join()是关键,我是在主线程启动协程的,该方法会等待协程结束后再在主线程执行后续的代码逻辑。所以下面的loadingProgressBar.dismiss()是在主线程执行的。

省市区JSON集合

虽然我当初的设计逻辑是只要提交所在省,但是我还是今天花时间把全国省市区的数据整理好。我觉得光是省,可能有点单薄,加上市会比较好一点,这个会在后面修改。网上的JSON格式数据有些要么比较旧了,要么就是格式不能满足我的需求,没办法解析。为此,我整理了一份,下载地址。这个格式已经比较规范了,可以用GSON直接解析生成对象,我明天会写文章说明如何解析。

先前上传过一次,但是有错误,居然不能撤销,狂晕中。这次测试过之后重新上传。下载需要1资源分,因为我也不知道怎么设置0资源分下载。没有下载积分的同学也不要担心,等我把这边的登录功能全部整理好后,会把服务端的代码也提交到Github上,到时候你就可以使用了。

接下来要做的事情

好友功能可能要先放一放了,这周主要把先前的功能完善,界面也要稍微搭点设计,不然太简陋了,但是本人确实毫无审美能力,这个倒是一个头疼的事情。另外获取省市区除了用户手动选择之外,我会使用百度定位,这周也会将其接入,到时候也会写一篇文章说明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值