IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> day9:Service以及多线程初步 -> 正文阅读

[移动开发]day9:Service以及多线程初步

一、多线程

1.线程

Android里面更新UI必须在主线程中更新,子线程中不能更新UI,kotlin有其简化的开启线程方法

thread{
    //具体耗时操作
}

2.异步处理机制

1.Message
//在线程中充当信息传递的角色
2.Handler
//处理各种信息和发送信息
3.MessageQueue
//字面意思就是消息队列,先进先出
4.Looper
//将消息一条条取出来,每个线程中只会有一个looper对象

3.利用AsyncTask轻松处理异步处理

//通过重写AsyncTask来完成异步处理
1.onPreExecute()
//初始化界面的操作可以放进来
2.doInBackground()
//此方法默认在子线程中运行
3.onProgressUpdate()
//对于UI进行操作
4.onPostExecute()
//任务执行完毕时执行

二、Service基本用法

非常适合处理一些比较耗时的操作,比如下载、播放音乐等等,不需要用户进行多少的交互,在程序进入后台之后进行操作

onCreate()
//在首次创建service时调用
onStartCommand()
//每次启动service时都会调用
onDestroy()
//service销毁时调用
onBind()
//绑定活动的方法

三、Service的生命周期

service只要启动或者被绑定都会处于运行状态,故需要停止service和解绑service这样service才会被销毁

四、前台Service的使用

由于android系统近些年对于后台的严格控制,所以需要使用前台service才能比较稳妥的保证service一直处于运行状态,

前台service有点像通知,不过我们需要进行权限声明

<users-permission android:name = "android.permission.FOREGROUND_SERVICE"/>

五、Kotlin:泛型的高级特性

1.泛型实化

使得我们可以在运行期间也清楚泛型的具体类型,具体实现是kotlin的内联函数

举个栗子

inline fun < reified T> getGenericType() = T::class.java
//需要加上inline与reified关键字

2.泛型的协变和逆变

首先这部分可能由于用处比较小,可以以后用到了再学,以下只给出概念

//首先做一个约定
fun hhh(p:T):T{
    //做为参数的部分称为in,返回值部分称为out
}
//协变
A是B的子类,如果类似List<T>这种泛型,要想List<A>也是List<B>的子类
必须保证泛型T不能出现再in位置,只能出现在out位置

//逆变
跟协变有点反过来的样子
A是B的子类,如果类似List<T>这种泛型,要想List<B>也是List<A>的子类
必须保证泛型T不能出现再out位置,只能出现在in位置

这类特性估计应用比较窄吧,比较难以理解

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-07-29 23:28:47  更:2021-07-29 23:29:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 7:51:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码