根据EventBus doc,有 4 种类型的线程模式EventBus
用于传递线程:
onEvent()
- 帖子线程
- 适合简单的任务
onEventMainThread()
- 主线程
- 又名 UI 线程
- 适合 UI 更改
onEventBackgroundThread()
- 背景踏板
- 使用单线程,按顺序传递事件。
- 适合需要适度时间的执行。
onEventAsync()
- 异步
- 使用单独的线程。
- 适合需要较长时间的执行
问题
onEventBackgroundThread()
在使用over之前,我应该检查哪些标准onEventAsync()
,反之亦然?有哪些使用其中一种具有明显优势的例子?以下每个函数应使用哪种线程模式?
获取设备状态——设备的 GPS 位置(即
android.location
),互联网连接状态(即ConnectivityManager
,NetworkInfo
)。发出简单的 HTTP 请求来接收文本(例如 JSON),需要 1000 毫秒到 5000 毫秒之间的任何时间,平均 2000 毫秒。
发出简单的 HTTP 请求以加载文件大小在 50kb 到 1500kb 之间的图像(在向服务器发出请求之前,客户端不知道确切的大小)。
将数据缓存到内部数据库(例如
SharedPreferences
,SQLite
等)。