摘要: Android多线程编程 其实就是将耗时操作放在子线程里运行,防止主线程被阻塞,影响软件使用。 线程的基本用法 1. 定义一个线程只需要新建一个类继承自Thread,然后重写父类的run()方法,并在里面编写耗时逻辑即可,如下所示: class MyThread: Thread() { overri 阅读全文
posted @ 2022-03-13 20:41 PeacefulGemini 阅读(138) 评论(0) 推荐(0)
摘要: 泛型 泛型的基本用法 泛型主要有两种定义方式:一种是定义泛型类,另一种是定义泛型方法,使用的语法结构都是<T>。 定义一个泛型类: class MyClass<T> { fun method(param: T): T { return param } } 此时的MyClass就是一个泛型类,MyCl 阅读全文
posted @ 2022-03-13 17:46 PeacefulGemini 阅读(120) 评论(0) 推荐(0)
摘要: SQLite数据库存储 创建数据库 Android专门提供了一个SQLiteOpenHelper帮助类,借助这个类可以对数据库进行创建和升级。 它是一个抽象类,意味着我们要使用它的话就要创建一个类去继承它。有两个抽象方法:onCreate()和onUpgrade()。 SQLiteOpenHelpe 阅读全文
posted @ 2022-03-13 16:25 PeacefulGemini 阅读(124) 评论(0) 推荐(0)
摘要: SharedPreferences存储 SharedPreferences是使用键值对的方式来存储数据的。 将数据存储到SharedPreferences中 Android中主要提供了两种方法用于得到SharedPreferences对象。 Context类中的getSharedPreference 阅读全文
posted @ 2022-03-13 15:07 PeacefulGemini 阅读(290) 评论(0) 推荐(0)
摘要: 文件存储 文件存储是Android中最基本的数据存储方式,它不对存储的内容进行任何格式化处理,所有数据都是原封不动地保存到文件当中的,因而它比较适合存储一些简单的文本数据或二进制数据。 将数据存储到文件中 Context类中提供了一个openFileOutput()方法,可以用于将数据存储到指定的文 阅读全文
posted @ 2022-03-13 14:56 PeacefulGemini 阅读(235) 评论(0) 推荐(0)
摘要: 内联函数的功能 在Kotlin高阶函数中,我们了解到Lambda表达式实际上是会带来额外的内存和性能开销的。 而内敛函数的作用就是将Lambda表达式带来的运行时开销完全消除。 内联函数的用法 只需要在定义高阶函数时加上inline关键字即可。 inline fun num1AndNum2(num1 阅读全文
posted @ 2022-03-13 14:13 PeacefulGemini 阅读(507) 评论(0) 推荐(0)
摘要: 定义高阶函数 高阶函数和Lambda的关系是密不可分的。 定义:如果一个函数接收另一个函数作为参数,或者返回值的类型是另一个函数,那么该函数就称为高阶函数。 一个新概念:函数类型。编程语言中有整型、布尔型等字段类型,而Kotlin增加了函数类型。 如何定义,语法规则如下: (String, Int) 阅读全文
posted @ 2022-03-13 13:48 PeacefulGemini 阅读(704) 评论(0) 推荐(0)
摘要: 广播机制简介 Android中的广播机制十分灵活,每个应用程序都可以对自己感兴趣的广播进行注册,这样该程序就只会收到自己所关心的广播内容,这些广播可能是来自于系统的,也可能是来自于其他应用程序的。 Android提供了一套完整的API,允许应用程序自由地发送和接收广播。 发送广播可以借助Intent 阅读全文
posted @ 2022-03-13 12:06 PeacefulGemini 阅读(491) 评论(0) 推荐(0)
摘要: 对变量延迟初始化 如果你的类中存在很多全局变量实例,为了保证它们能够满足Kotlin的空指针检查语法标准,你不得不做许多的非空判断保护才行。 解决办法就是对全局变量进行延迟初始化,使用的是lateinit关键字。意思是晚点对这个变量进行初始化,这样就不用一开始赋值为null了, 同时需要声明类型。 阅读全文
posted @ 2022-03-12 21:23 PeacefulGemini 阅读(170) 评论(0) 推荐(0)
摘要: 学习RecyclerView之前先回顾一下ListView。提升ListView的运行效率有两点: convertView:因为在FruitAdapter的getView()方法中,每次都将布局重新加载了一遍,当ListView快速滚动的时候,这就会成为性能的瓶颈。但是getView()方法中还有一 阅读全文
posted @ 2022-03-12 20:57 PeacefulGemini 阅读(142) 评论(0) 推荐(0)
回顶部