
Android
文章平均质量分 79
山雨楼
山雨雨来风满楼
展开
-
Android ViewModel LiveData observe onChanged 方法只执行第一次问题
类似问题发生前提onChanged 回调中发生异常setValue被包含在外部try catch中onChanged函数中没有做异常捕获在网络回调中设置setValue很常见,如果在异常中又没有将异常展示,问题将很难发现,这里记录下。原创 2023-06-28 11:21:03 · 801 阅读 · 0 评论 -
Android 10(Q) multi-resume(多项恢复)带来的问题
在项目中,ActivityA启动ActivityB,ActivityB启动系统图片选择器,如果从系统图片选择器返回,这个时候ActivityA和ActivityB同时都会回调onResume方法,这个时候如果ActivityA中的onResume方法里有代码执行,而且又不希望在后台中执行就会出问题。那么问题又来了为啥Android 10会做出这样的改变呢,原来是为了兼容多窗口多屏幕,应用在上述设备同一个应用可以有多个resume状态下的Activity,具体可以参照。原创 2022-09-14 17:41:22 · 1004 阅读 · 0 评论 -
ExoPlayer 源码阅读小记--音视频数据流分析
基于ExoPlayer 2.17.1源码分析,分析下音视频数据是如何到播放器播放的原创 2022-06-10 17:22:42 · 1024 阅读 · 0 评论 -
ExoPlayer 源码阅读小记--缓存模块及获取HLS已缓存大小
基于ExoPlayer 2.17.1源码分析:首先回到上一篇文章里第一次涉及到缓存的地方:调用StatsDataSource封装的CacheDataSource,这里会调用TeeDataSource 的open,Tees翻译就是三通的意思,这是个一进二出的三通,一个水龙头冷水进,一路进小厨宝缓存加热后出,一路直接水龙出//TeeDataSourcepublic long open(DataSpec dataSpec) throws IOException { bytesRemaining =原创 2022-05-24 20:19:18 · 1447 阅读 · 0 评论 -
ExoPlayer 源码阅读小记--HLS播放带缓存加载M3U8文件过程
基于ExoPlayer 2.17.1源码分析原创 2022-05-23 11:11:31 · 3447 阅读 · 2 评论 -
Android 在Service中使用ViewModel
别想了,官方并不推荐这种做法。ViewModel应该与Activity或Fragment紧密结合使用,因此它注定要存在于应用程序的UI层中。因此,我不建议在Service中使用ViewModel。可以将Service和ViewModel的公共代码抽出。具体参考:https://github.com/android/architecture-components-samples/issues/137#issuecomment-327854042The ViewModel should be used原创 2020-12-04 11:53:00 · 5853 阅读 · 4 评论 -
Android Gradle 打包时排除 Assets 目录指定文件
直接上代码,排除 Assets 目录或者子目录下的 qaa.js,ccc.css,bbb.t 这3个文件,多个文件以!开头:结尾。当一个文件夹下所有文件都排除后,空文件夹会自动删除。 buildTypes { debug { aaptOptions { ignoreAssetsPattern '!qaa.js:!ccc.css:!bbb.t:' } }}...原创 2020-11-24 17:39:50 · 3878 阅读 · 2 评论 -
获取 Android Toolbar的真实准确高度问题
项目中设置了Toolbar代码片段如下<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content">原创 2020-08-16 11:01:13 · 1063 阅读 · 0 评论 -
强制开启Android 分区存储 沙盘文件系统
为了测试Android 11下强制分区存储后的应用兼容问题,这里摸索了下目前的打开方式1. 在AS里下载API 30的 虚拟机2. 打开虚拟机,进入首页后,执行adb shell sm set-isolated-storage on3. 安装应用,系统 > 高级 > 开发者选项 > 应用兼容性变更,找到对应应用勾上下面几项4. 卸载应用,重新安装5. 这个时候发现无论应用Target API多少,是否设置requestLegacyExternalStorage 都无法打开原创 2020-07-23 15:30:29 · 1350 阅读 · 0 评论 -
Android RadioButton 在低版本设置 android:button= @null 去除系统按钮样式失效的解决方法
Android RadioButton 在低版本设置 android:button= @null 去除系统按钮样式失效无效的解决方法具体原因参考这篇文章:https://blog.youkuaiyun.com/wl9739/article/details/53744324解决方案:在xml里同时加上 android:button="@null" app:buttonCompat = "@null"...原创 2020-03-12 10:29:29 · 961 阅读 · 0 评论 -
Kotlin 杂谈之 setOnClickListener 接口入参为什么可以简写成 Lambda
Kotlin 杂谈之 setOnClickListener 为什么可以简写成 Lammbda先上代码://例1 //java里定义的一个接口 public interface OnClickListener { void onClick(View v); } //kotlin调用 view.setOnClickListener { //...原创 2019-12-30 17:30:54 · 4765 阅读 · 0 评论 -
Android 加载H5页面数据无法传递正确展示的一个可能原因
Android 加载H5页面数据无法传递正确展示的一个可能原因最近解决一个比较有意思的问题:功能:是这样的Android 通过 WebView 加载一个H5网页,然后向网页里动态传递一些数据,传递方式为将数据转成 json,然后通过 loadurl 的方式传递json,调用js设置网页数据。现象:使用过程中发现某些情况下页面无法正确加载传递过去的json数据,导致H5页面展示错误。原因...原创 2019-11-01 15:49:10 · 966 阅读 · 0 评论 -
Android Studio Gradle 代理设置
Android Studio Gradle 代理配置由于使用的是公司内网导致,AS需要代理才可以联网,但是设置了AS的代理并不能使Gradle也处于代理环境需要单独设置Gradle的代理: 修改gradle.preportisesystemProp.http.proxyHost=代理主机地址地址systemProp.http.nonProxyHosts=忽略地址systemPro...原创 2018-04-09 10:28:11 · 4795 阅读 · 0 评论 -
Gradle 切换阿里云仓库
转载地址:http://xuanzhui.iteye.com/blog/2335870 原因是国内访问jcenter太慢,甚至连接不上,就会报各种关于依赖更新失败的错误。 以前oschina(也就是开源中国)提供了jcenter的镜像地址,然而不幸的是因为各种原因,最近停止服务了开源中国 Maven 镜像库关闭访问幸运的是阿里云提供了jcenter镜像 http://maven.al...转载 2018-04-09 10:31:16 · 13688 阅读 · 0 评论 -
Android Studio 无关日志太多解决方法
Logcat 右上角 点击 Edit Filter Configuration 然后 Log Tag 填入 ^(?!.(OpenGLRenderer|dalvikvm)).$ 中间要过滤的TAG字符更具实际情况填写,还有别忘了填写Package Name当前包名...原创 2018-04-10 19:15:00 · 2836 阅读 · 0 评论 -
InputConnectionWrapper commitText StackOverflowError
开发过程中打开 Android Studio 的 Android Profiler 做性能优化, 然后在输入框处准备输入时应用异常退出,代码没有任何修改,只是打开了 之后只要一点开输入文字就异常退出错误如下:04-13 17:36:12.906 9841-9841/demo.greendao D/Error: ERR: exClass=java.lang.StackOverflow...原创 2018-04-13 17:46:53 · 673 阅读 · 0 评论 -
android TextView 跟随 seekBar 一起滑动,最简单代码,完美实现,无偏差
开发中遇到如题的需求找了一些方法,发现一起移动都会有偏差,于是就自己修改了下代码,可以实现无偏差一起滑动,代码如下: 1.布局代码<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto...原创 2018-09-04 20:46:39 · 1640 阅读 · 1 评论 -
直接打开开发者选项,绕过oppo恶心的验证码
这里写自定义目录标题直接打开开发者选项,绕过oppo恶心的验证码直接打开开发者选项,绕过oppo恶心的验证码目前本人的Color OS 3.0测试可用这个方法:新建Android工程,在activty执行以下代码打开开发者即可:/** * 打开开发者模式界面 */ private void startDevelopmentActivity() { ...原创 2018-12-03 10:42:19 · 15834 阅读 · 10 评论 -
彻底明确怎样设置minSdkVersion和targetSdkVersion
minSdkVersion和targetSdkVersion相信非常多人都不太理解。我在网上也看了很多关于这两者差别的文章,感觉说的都非常模糊。直到我在stackOverFlow看到Android Min SDK Version vs. Target SDK Version这篇文章后,我才最终弄清楚怎样去设置minSdkVersion和targetSdkVersion。如今我将分享给大家。简言...转载 2018-02-09 17:21:39 · 3271 阅读 · 0 评论