大象笔记

Android Kotlin Room: AppDatabase_Impl does not exist

Android 4.1.2 测试 Android Room 的使用,在 coroutine 中调用 Room.databaseBuilder 时,报错 > AppDatabase_Impl does not exist Goo

Android ViewModel 与 LiveData 的使用场景

## 概述 - 在 activity 中监听 ViewModel 中数据的变化,当有变化时,将对应的数据显示在界面组件上 - LiveData 在 ViewModel 中使用,上面监听的数据类型就是 LiveData 类型。 - 同时

kotlin 的 suspend fun 函数

在看 Android Room 的示例代码时,看到一些 DAO 中的操作函数前有 suspend 关键字。例如: ``` @Query("DELETE FROM word_table") suspend fun deleteAll

使用视图绑定 View Binding 替代 findViewById

使用场景,例如,点击按钮获取输入框的内容。就需要写一堆 findViewById 的代码。 Android Studio 3.6 之后,可以使用 View Binding 来简化这个操作。 而且在绝大部分场景下,view bin

tampermonkey onclick 无效,显示 xxx is not defined

使用 tampermonkey 在当前网页中添加了一个按钮,用于手动触发自动化逻辑。 ``` 开始抢购 ``` do_something 函数,是我在 tampermonkey 脚本中定义的函数。 但是,点击按钮之后,

Android 点击 FAB 按钮打开另一个 fragment

使用 Android Studio 的 Basic Activity 模板创建了新项目。 Basic Activity 内置了: - 一个底部 FAB 按钮 - 两个 fragment 可以相互切换 但是,我想实现的交互

tampermonkey 上传 Blob 文件到其他服务器,multipart/form-data 版

application/octet-stream 版本的缺陷: - 无法增加多余参数。例如,我想顺便传递用户名,就没法增加字段了 - 搜了半天没找到 Spring Boot 读取 application/octet-stream 的

tampermonkey 上传 Blob 文件到其他服务器,application/octet-stream 版

例如,我想将 https://www.sunzhongwei.com 网页中下载到的 Excel 文件,上传到其他服务器。这里以 http://localhost:5000 为本地测试环境。 ## tampermonkey 中是否

使用 async / await 实现 setTimeout 的同步写法

在 tampermonkey 的很多实际使用场景中,需要在模拟点击之后,等待界面变化,或者数据返回,此时就需要用到 setTimeout。但是如果是一系列的点击等待,就需要进行 setTimeout 嵌套,或者 setTimeout 时间进

使用 rsync 将 git 代码项目同步到 svn

由于我习惯 git 管理代码,但是提交公司代码仓库时必须使用 SVN,所以做了个简单的同步。 ## 同步脚本 实际上就是一行 rsync 命令。 ``` rsync --verbose --progress --sta