Android实训-Day8&Day9

Day8

刷抖音发现了不少好听的歌,今日推荐,诗人莫把红颜醉--豆包

一.笔记

【线程】
默认情况下,程序只有一条执行的流程,这个执行的流程就是主线程。

//持续占有CPU资源,但不执行任何操作。
Thread.sleep(毫秒数)

ANR(Application Not Responding,程序未响应)
出现的原因就是主线程的执行顺序流被某个耗时的操作阻塞了,导致后续的操作无法及时响应。

这个时候系统处于保护的机制会弹出窗口。

但是很多时候,应用程序需要执行耗时操作(IO、网络等)的同时又要执行UI交互。
这种情况下应该使用多线程。


主线程:
1. 默认线程
2. 负责UI操作
3. 严禁耗时操作

子线程:
1. 需要手动开启
2. 执行完毕后自动关闭
3. 负责耗时操作
4. 严禁UI操作

【Thread线程】
开启线程的步骤:
1.自定义一个线程类继承Thread类
2.覆盖Thread类中的run方法
3.在run方法中添加要执行的代码
4.创建自定义线程类的对象
5.使用自定义线程类的对象调用【start方法】启动子线程

【Runnable线程】
开启线程步骤:
1.自定义一个线程任务类实现Runnable接口
2.实现Runnable接口中的抽象方法run
3.在run方法中添加要执行的代码
4.创建自定义线程任务类的对象
5.创建Thread线程类,在构造方法中传入自定义线程任务类对象
6.线程类对象调用start方法启动子线程

【线程模型】
主线程(UI线程):UI操作。
子线程:耗时操作。

UI(主线程)要显示耗时操作(子线程)的结果。
在子线程中发送消息给主线程。

快捷键 Ctrl + L 跳转行

【Handler】

【加载网络图片】
例子:加载一张网络图片到ImageView上。
https://03imgmini.eastday.com//mobile//20201218//20201218133813_362200891ebb137183288595c85eabf5_2_mwpm_03200403.jpg

程序要使用一些特殊的功能(如网络连接),需要在清单文件中添加相关的权限。
<uses-permission android:name="android.permission.INTERNET"/>

【新闻数据来源】
本次课程课上示例数据来自聚合数据平台API:
https://www.juhe.cn/
小组可以自行选择其他API平台的接口。

使用之前要注册账号。

http://v.juhe.cn/toutiao/index
?                                                                        //用?将地址与其他项分开
type=tiyu
&                                                                        //用&分割除地址外的其他项
key=5465c4c5d60f72c3d756a9f1a9b8437d         //关键码

【cmd下中文乱码】

1.临时修改,只作用于当前打开的窗口

  进入cmd窗口后,直接执行“chcp 65001”

  执行完后,cmd的编码格式就是UTF-8

执行完后提示:

此时打开的窗口就不会乱码了

下面是Day8_HttpUrlConnection程序返回的数据:

二.作业

有一个页面,上面有一个按钮、一个文字显示控件、一个图片显示控件。

要求点击按钮后,文字开始倒计时10秒,10秒后图片显示控件加载一张网络图片。

网络图片地址:

https://08imgmini.eastday.com//mobile//20201230//20201230155641_84dfddfa8731b177420c5ee7b51edf3e_5_mwpm_03200403.jpg

 

Day9

一.笔记

【JSON数据】
昨天服务器返回的一对字符串实际上是JSON格式的。
格式(逐级嵌套):
{}表示的是JSONObject对象,内部是键值对
[]表示的是JSONArray对象,即JSONObject数组。

每条新闻包含的内容:
uniquekey                    ---每条新闻一个唯一识别码
title(必用)                ---新闻标题
date                        ---新闻时间
category                    ---新闻类别
author_name                    ---新闻作者
url                            ---新闻连接
thumbnail_pic_s                ---新闻图片

【WebView 网页加载控件】
专用于HTTP网页加载。

【android:allowBackup="true"】

AllowBackup是在Android 2.2中引入的一个系统备份的功能。允许用户备份系统应用和第三方应用的apk安装包和应用数据,以便在刷机或者数据丢失后恢复应用,用户即可通过adb backup和adb restore来进行对应用数据的备份和恢复。第三方应用开发者需要在应用的 AndroidManifest.xml 文件中配置 allowBackup 标志(默认为 true )来设置应用数据是否能能够被备份或恢复。

【给app换图标】

app图标定义在res/drawable-hdpi中
向目录加入你的图片,然后根据你的图片名替换掉前面提到的icon
最后将解压的文件按apk文件保存,图标就改好了

我的图片名是news.png

【修改app名字】

请到res/values/strings.xml下

【clean】

Project->clean之后bin下的文件会有改变,会删掉好多,重新运行之后会出现新编译的apk文件!!!

【实名注册问题】

今天需要调用聚合数据平台的接口时,需要实名注册,但我的一直不通过,我将身份证反复修改也不行,后来客服一语惊醒梦中人。我看了看实名认证不是我啊!!!!!!!

是我母亲大人,我才记起来这是她原来给我的卡,只能假期俩人拿着身份证去营业厅过户了。

我这种情况还是比较少的。。

接口申请好了就像下面那样,其中key和type是必要的,参考着我上传的代码那样解析json调用就好了。

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

深海鱼肝油ya

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

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

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

打赏作者

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

抵扣说明:

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

余额充值