- 博客(244)
- 资源 (3)
- 收藏
- 关注

原创 Java 定时任务-最简单的3种实现方法
我们可以通过 Redis 的键空间通知来实现定时任务,它的实现思路是给所有的定时任务设置一个过期时间,等到了过期之后,我们通过订阅过期消息就能感知到定时任务需要被执行了,此时我们执行定时任务即可。Spring Boot 启动后会自动加载并执行定时任务,无需手动操作。Spring系列框架中Spring Framework自带的定时任务,只需使用@Scheduled注解标注即可,号都表示匹配所有的时间。,但SpringTask可轻松实现。也是Java自带的类,
2022-03-07 16:58:38
59443
9

原创 Android 超简洁的视频播放器推荐 ArtPlayer
深海最近做视频相关需求的时候, 在GitHub上找到的一个播放器:ArtPlayer 相对比其他三方的播放器来说,更加简洁和易扩展.支持内核替换ijkPlayer支持 ExoPlayer支持GitHub 地址:https://github.com/maiwenchang/ArtPlayer使用起来有多简单呢? 看代码:首先加入这些依赖 别问我为什么有3个 ...
2019-05-29 16:39:48
13393
44

原创 Android 极光IM简单的聊天界面全手动实现
说到实时通讯,很多人都想到融云,极光,环信,网易啊等等一系列,因为需求原因,我们最近的项目呢是用的极光.由于极光的界面Demo十分繁琐,很多功能我们用不到,所以我干脆自己写了会话列表和聊天界面这里面主要原理是 左右各放一个头像 , 根据用户是自己还是别人,来区分隐藏哪一边,中间竖向排列了文本textView,图片imageView和 提醒view("已读/未读")根据消息类型绝对显示隐藏哪一个。
2018-11-27 18:18:20
13417
75
原创 Android Google登录接入
在小型项目中,实现最简单最高效的网络请求封装 轻量化,不借助除okhttp以外的三方框架 单个类实现,且可读性高,扩展性高 最少的代码行数,最简单的调用方式。新版 Google Sign-In API | Authentication | Google for Developers。如果您发现文章有任何错误或建议,请评论区留言或者私信!深海谢过各位的支持,一起加油!
2024-11-21 17:50:01
2298
3
原创 Android 从本地选择视频,用APP播放或进行其他处理
深海最近做视频相关需求的时候, 在GitHub上找到的一个播放器:ArtPlayer 相对比其他三方的播放器来说,更加简洁和易扩展.支持内核替换ijkPlayer支持ExoPlayer支持GitHub 地址:https://github.com/maiwenchang/ArtPlayer使用起来有多简单呢?子Activity可以通过继承此类来复用这些功能。点击视频列表中的某个视频,会返回APP并自动播放所选视频。
2024-11-21 15:22:12
1343
3
原创 Android 最新的AndroidStudio引入依赖失败如何解决?如:Failed to resolve:xxxx
当遇到Android项目出现大面积错误时,可以尝试通过重启Android Studio、清理和重建项目、检查环境配置、调整依赖库等步骤来解决问题。检查内容包括SDK和NDK配置、Gradle与JDK设置,以及使用阿里云镜像仓库解决网络限制。此外,注意Kotlin版本匹配和依赖关键字的正确使用,如implementation与api的区别。Android 项目编译报错或异常,有多少解决方案?如果您发现文章有任何错误或建议,请评论区留言或者私信!
2024-11-14 14:05:52
1011
1
原创 Android 用80行代码 封装最简单网络请求 HttpUtils
在小型项目中,实现最简单最高效的网络请求封装 轻量化,不借助除okhttp以外的三方框架 单个类实现,且可读性高,扩展性高 最少的代码行数,最简单的调用方式
2024-11-12 14:34:30
395
2
原创 Android TextView自动换行文本显示不全解决
只需要设置TextView一个属性就可以解决,这个属性比较冷门:breakStrategy。意为换行策略,将breakStrategy设置为“balanced”成功解决问题。
2024-11-04 15:09:06
1007
1
原创 Android kotlin密封类-基本使用
密封类(Sealed Classes)是一种特殊的类,它可以有一组受限的子类。与普通的基类不同,密封类的所有子类都必须在与密封类相同的文件中声明。这种限制使得密封类非常适合于表示固定的类层次结构,特别是在使用 when 表达式时。表示 UI 的不同状态,如加载、成功和错误。
2024-10-09 16:38:20
796
1
原创 Android Compose 控件基本属性
{Column { //竖向布局var newText by remember { mutableStateOf("默认") }NewText(NewTextField(fieldText, "随便输入点什么吧") {//输入监听事件Log.e(TAG, "输入内容:$it")NewButton("清空按钮") {//点击事件NewButton("跳转") {//点击事件Text(textAlign = TextAlign.Center, //文字居中。
2024-10-09 16:07:08
943
原创 Android Compose的基本使用
Compose这个东西呢,好处我没发现,坏处就是学习成本和低版本兼容.不过,看在官方力推的份儿上,有空就学一下吧.当初的kotlin,很多人说鸡肋(包括我)!现在不也咔咔用纯kotlin做项目吗?哈哈哈哈.未来的事情,谁说得清呢?1.简单的View排列放置以及基础属性2.View的事件监听和事件传递(如点击事件,输入事件)3.View的数据动态赋值(直接改变数据,UI自动改变) (数据必须由remember代理)) {Column { //竖向布局。
2024-09-29 18:22:55
905
1
原创 Android 已经过时的方法用什么新方法替代?
这个新方法,比原先从统一的onActivityResult()中拿结果要方便的多,且代码可读性更高。AppCompatActivity时显示过时。
2024-09-25 15:02:10
598
1
原创 从0新建一个微信小程序实现一个简单跳转
index.wxml 增加跳转按钮。index.wxss 增加按钮尺寸。新建一个文件夹 testUI 给他们放一起。
2024-09-24 15:44:08
717
原创 Android String资源文件中,空格、换行以及特殊字符如何表示
例:test test 例:test \n test 例:test \t test 前面加转义符号“ \ ”即可 例:
2024-09-20 16:35:36
972
原创 Android 将EasyPermissions进一步封装,使得动态权限申请更加简明
***/// 用户给予相关权限成功后的回调) {// 进一步使用 EasyPermissions 处理后续结果// 授予权限.let {>) {// 请求权限被拒.let {= nullfun permissionsYes(code: Int) //获取授权成功fun permissionsNo(code: Int) //获取授权成功// 获取蓝牙相关的权限// 获取录音和前台服务权限// 添加录音权限// 根据 Android 版本添加前台服务权限。
2024-09-18 14:50:28
604
1
原创 Android 用线程池实现一个简单的任务队列(Kotlin)
_______________________________________________________________________如果您感觉文章有用的话麻烦点个赞吧.更多内推荐: https://blog.youkuaiyun.com/qq_39731011/category_9666859.html?fromshare=blogcolumn&sharetype=blogcolumn&sharerId=9666859&sharerefer=PC&sharesource=qq_397310
2024-09-14 13:53:10
992
原创 Kotlin 代替Java接口回调,就这么简单
通常三步:1 定义接口和方法;2 使用接口中方法;3 继承接口并实现方法;1定义抽象方法 2 直接调用 3直接实现。使用Kotlin呢?
2024-09-11 17:22:48
405
原创 Android 语言国际化三步
1.罗列: 可以多罗列几个 不需要全部实现。res下创建这个文件:locale-config。每次切换完->存缓存>然后立即调用以下代码。刚进入的时候调用一次以下代码。
2024-09-10 16:32:54
749
3
原创 Android 蓝牙三方和动态权限三方
FastBle是一个开源的Android BLE库,旨在简化和加速Android平台上的蓝牙低功耗(BLE)开发。它提供了一组易于使用的API和丰富的功能,使开发者能够快速构...FastBle:Android BLE通信库的介绍与高级用法 - 简书。
2024-09-10 16:13:37
683
1
原创 Android 使用JSON动画:Lottie框架基本使用
把第二步控件lottie_fileName属性的xxx.json换成你扔的文件名称(切记名字后缀带上)多半是因为Json文件名字错误,结尾没有把".json"后缀写上,注意: 相关配置属性也可以用代码进行配置。或者是文件名里有空格,两边对不上.我写文章时最新版本是6.5.2。
2024-09-06 14:22:26
996
1
原创 Android 在TextView前面添加多个任意View且不影响换行
*** 优快云深海呐 https://blog.youkuaiyun.com/qq_40945489/article/details/109399596*///必须重写所有的构造器,否则可能会出现无法inflate布局的错误!for (String item : dataList) {//将内容添加到content,用drawable替代这些内容所占的位置i++) {//R.layout.tag是每个标签的布局case 1:break;
2023-09-05 17:36:04
848
原创 Android AAPT: error: resource color 异常原因处理
【代码】Android AAPT: error: resource color 异常原因处理。
2023-09-05 17:00:57
3605
原创 App上架应用市场操作流程
言简意赅,介绍产品的核心功能。描述你的app是什么类型,是游戏,工具还是社交等,要遵守广告法、新闻语等规则,两三句话描述app的核心特色,用几个短段落来阐述app的功能特色,最好写上联系方式,微博微信网站等。
2022-11-11 17:11:51
1557
1
原创 算法探索_罗马数字转整数
第二种是分开看待这种两位的值 CM = 900 看作是 1000与(-100) 的和,这样就可以无条件的从后往前遍历对应值,进行一位一位的无限累加;我采用的是第二种方案。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。同样地,数字 9 表示为。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做。:两种方案,一种是把CM XC IV这种 值看作一个整体去遍历累加;给定一个罗马数字,将其转换成整数。,即为两个并列的 1。
2022-11-11 14:35:50
282
原创 通用数据结构设计-绝对格式
程序的健壮性,往往看他能有多少的容错性,最坏的结果是什么,例如以上的两个例子,如果价格类字段只能以Double进行传输和存储,前端无论如何展示,我传输和保存都不参与,那么永远不会有空指针和传输过程中的类型转换风险,如果时间只能以固定位数的时间戳进行传输和存储,前端无论如何展示,传输和保存都不参与,那么最坏的结果,无非是时间异常导致用户看到非法的时间,而不是服务荡机,或者前端崩溃闪退。如果降低风险,是作为架构角度的必要考虑,那么,绝对格式,则是可以拍案的一条建议。
2022-10-29 00:32:50
644
原创 1024 最近有些忙
点击视频列表中的某个视频,会返回APP并自动播放所选视频。在小型项目中,实现最简单最高效的网络请求封装 轻量化,不借助除okhttp以外的三方框架 单个类实现,且可读性高,扩展性高 最少的代码行数,最简单的调用方式。在小型项目中,实现最简单最高效的网络请求封装 轻量化,不借助除okhttp以外的三方框架 单个类实现,且可读性高,扩展性高 最少的代码行数,最简单的调用方式。
2022-10-24 20:27:46
186
原创 算法探索-切面条(优快云算法技能树第一题)
一根高筋拉面,中间切一刀,可以得到2根面条。如果先对折1次,中间切一刀,可以得到3根面条。如果连续对折2次,中间切一刀,可以得到5根面条。那么,连续对折10次,中间切一刀,会得到多少面条呢?题目给出了四个答案:分别是512、513、1024、1025。...
2022-08-26 10:12:03
251
1
原创 Java 后端 - 腾讯云短信报错:AuthFailure.SecretIdNotFound message:The SecretId is not found, please ensure that
我们可以通过 Redis 的键空间通知来实现定时任务,它的实现思路是给所有的定时任务设置一个过期时间,等到了过期之后,我们通过订阅过期消息就能感知到定时任务需要被执行了,此时我们执行定时任务即可。Spring系列框架中Spring Framework自带的定时任务,只需使用@Scheduled注解标注即可,号都表示匹配所有的时间。也是Java自带的类,_java 定时任务。错误码:AuthFailure.SecretIdNotFound。
2022-08-17 17:28:40
4585
原创 技术总监需要具备哪些能力?优先级?
可以看到第一档是 人员/项目管理、问题解决、汇总/演讲、快速学习。如果希望走这条路的话,这也许是查漏补缺的一个思路。前不久我在优快云发起了一个投票,这是投票结果。其实本意是希望看到这条路的技能优先级。第二档是 后端、运维、前端、运营。......
2022-08-05 16:21:15
695
原创 Android Gradle 插件版本对应图
C:\Users\当前用户\.gradle\wrapper\dists 目录下新生成的目录(在线下载新生成的目录)中;
2022-08-01 16:24:02
523
原创 Flutter 环境变量配置和flutter doctor中的错误解决
运行命令flutterdoctor--android-licenses然后根据提示一直回复“y”表示同意授权,直到结束。这边尽量下载最新的,或者和我这边一样也可以,默认视图可能和截图不一致,勾选右下角的对勾即可切换成图中的视图样式。如果您不开发windowsphoneapp,直接忽略这个错误即可。要是能够得到您的关注,深海会更加荣幸,感谢各位的支持!如果您感觉深海写的不错的话,请给文章点个赞吧~右键点击我的电脑-属性然后找到环境变量。2.运行命令flutterdoctor。...
2022-07-29 15:30:23
4695
1
原创 Android 在原生项目中新建一个Flutter的Module
这个地址的两个xxx,第一个改成你的旧项目名,第二个改成刚刚建的Flutter项目名,这里的结构以您的实际情况为准。插件安装完后会提示重启AndroidStudio,重启完毕后进行第三步;要是能够得到您的关注,深海会更加荣幸,感谢各位的支持!Dart插件的作用是Dart语法的提示和补全等功能。创建完成后,将这个Flutter项目拷贝到旧项目下。等同步完成后,你会发现项目中多了一个这个文件夹。如果您感觉深海写的不错的话,请给文章点个赞吧。如果您有不同的见解或疑问,欢迎到评论区留言。至此结束,目的达成。....
2022-07-25 17:54:43
1920
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人