一. Android线程间通信有几种方法?
Handler
机制
runOnUiThread(Runnable action)
View.post(Runnable action)
AsyncTask
- 广播
- 使用
EventBus
、RxJava
等框架
1. runOnUiThread
thread {
val text = "runOnUiThread";
runOnUiThread {
tv.text = text;
}
}
2. view.post
thread {
val text = "post";
tv.post {
tv.text = text;
}
}
二. Android进程间通信的几种姿势
进程间通信即IPC
,英文全称Inter-Process-Communication
,是指进程间数据交换的过程。Android
底层是基于Linux
,而Linux
基于安全考虑,是不允许两个进程间直接操作对方的数据,这就是进程隔离。
6种常用姿势:
进程间通信方式
Bundle
文件共享
AIDL
Messenger
ContentProvider
Socket
三. Android的数据存储方式
Android
提供了5
种存储数据的方式,分别是以下几种:
Shared Preferences
文件存储
SQLite数据库存储
Content Provider
网络存储
- 使用
Shared Preferences
存储数据,用来存储key-value
,pairs
格式的数据,它是一个轻量级的键值存储机制,只可以存储基本数据类型。 - 使用文件存储数据,通过
FileInputStream
和FileOutputStream
对文件进行操作。在Android
中,文件是一个应用程序私有的,一个应用程序无法读写其他应用程序的文件。 - 使用
SQLite
数据库存储数据,Android
提供的一个标准数据库,支持SQL
语句。 - 使用
Content Provider
存储数据,是所有应用程序之间数据存储和检索的一个桥梁,它的作用就是使得各个应用程序之间实现数据共享。它是一个特殊的存储数据的类型,它提供了一套标准的接口用来获取数据,操作数据。系统也提供了音频、视频、图像和个人信息等几个常用的Content Provider
。如果你想公开自己的私有数据,可以创建自己的Content Provider
类,或者当你对这些数据拥有控制写入的权限时,将这些数据添加到Content Provider
中实现共享。外部访问通过Content Resolver
去访问并操作这些被暴露的数据。 - 使用网络存储数据
网友评论