当前位置: 首页 > news >正文

workmanager导入android studio

这个是备忘帖。

我一直在用alarmmanager做定时任务,但最近发现一个问题,就是在4.4以上版本做定时任务的时候,设两个闹钟很麻烦(其实是我不会),一直没成功,这两定时一个是每天的0点执行一个任务,一个是每4小时执行一个任务,4.4以下很简单,一个setrepeating就搞定了,但4.4以上setexact是单次任务,设置重复任务,0点任务就失效了,一直没找到方法,原因大概知道就是pentingintent会把上一个闹钟覆盖,肯定是有解决办法,但我不会,也找不到人问。于是在网上逛,发现一个人说,alarmmanager已经过时,现在用workmanager做。查了一下这个东西还真是不错,又要学新的东西。但第一步就遇到麻烦了。workmanager一直无法导入项目。研究了半天才搞定,我现在连它到底是怎么用都不知道,如果会用了,以后可能就用它了,现在把第一步导入这个第三方库到项目遇到的坑先填一下,不然以后又忘了。

方法一(我没成功):从github下载原码,再导入项目。

下载地址:

然后用网上的方法,没一个好用的,各种问题。就不一一罗列了。

方法二:直接下载jar文件,放到库里(libs)。我也没成功,一直没找到这个jar文件,也不知道到哪去找。

方法二:添加依赖。让gradle自己去找。目前看这个方法应该是功能了。

其实如何加依赖我也不会。好在可以找到方法。先到mvnrepository 去搜索workmanager(网站很慢,有时候打不开),有很多,我找了一个2.7.1版的(地址:https://mvnrepository.com/artifact/androidx.work/work-runtime/2.7.1),还有最新的是2.8多,但不是正式版。下面有怎么加到gradle里面的代码:

 其实就是这句就行:implementation group: 'androidx.work', name: 'work-runtime', version: '2.7.1'

 是加到模块那个build.gradle里面,还不是第一个文件。

然后同步会有好个问题,有点不记得了,就算同步完了,运行项目的时候还是有问题,过不去,我只记得两个:

一个类似如下错误提示:

Default interface methods are only supported starting with Android N (--min-api 24): android.view.MenuItem androidx.core.internal.view.SupportMenuItem.setContentDescription(java.lang.CharSequence)

我原来用的是3.5.2版的as,升级一下这个问题就没了。

升级后有出现一个问题:Task :app:processDebugMainManifest FAILED。意思就是manifest文件有问题,打开一看是这个:

 按照提示修改就行了,加了下面这行:

 再运行:有的没问题,有的会有下面的问题:

版本问题,具体是哪里问题也搞不清,反正也搞定了。还是上面那个加依赖的文件,在上面有一两个版本的地方:提示内容如下:The minCompileSdk (31) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion...

 改成一样的就过了,但不能低于31,但报错还有一个minsdkversion不能低于31,这两个改完了,那个问题也没了。

我到现在都不知道这个到底java能不能用,我看好几个地方出现kotlin字样,我也没研究。希望能用好用吧。一个小白瞎折腾,全都是知识。

相关文章:

  • Fast R-CNN
  • 【Spring系列03】依赖注入(DI)[之set注入]
  • 机器学习笔记之支持向量机(二)引出对偶问题
  • invokeBeanFactoryPostProcessors
  • 使用 pnpm monorepo + ts 制作个功能完善的 CLI 命令行工具
  • leetcode:714. 买卖股票的最佳时机含手续费
  • 基于MATLAB的曼彻斯特调制与解调实现
  • SpringBoot 实现 Oracle 主从数据库的动态切换,并实现读写分离
  • 24.缓存
  • 【AJAX是什么】【AJAX的基本使用】
  • 丈母娘想女婿了,小伟和陈萌刚拍完婚纱照,就被大衣哥安排去看望
  • 猿创征文|Android kotlin实现动态更换应用图标和名称
  • Java高阶数据结构之红黑树
  • 获取泛型对应的类
  • java学习之springcloud之服务配置+服务总线+消息驱动+链路跟踪篇
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • 2017-08-04 前端日报
  • Computed property XXX was assigned to but it has no setter
  • co模块的前端实现
  • create-react-app做的留言板
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • Laravel 实践之路: 数据库迁移与数据填充
  • mysql中InnoDB引擎中页的概念
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • PHP 7 修改了什么呢 -- 2
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • 分享几个不错的工具
  • 工程优化暨babel升级小记
  • 简单实现一个textarea自适应高度
  • 排序算法学习笔记
  • 前端学习笔记之观察者模式
  • 数据科学 第 3 章 11 字符串处理
  • 小而合理的前端理论:rscss和rsjs
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ###STL(标准模板库)
  • #Lua:Lua调用C++生成的DLL库
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (二)fiber的基本认识
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (一)u-boot-nand.bin的下载
  • (转)EXC_BREAKPOINT僵尸错误
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • ***检测工具之RKHunter AIDE
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .md即markdown文件的基本常用编写语法
  • .NET Core WebAPI中封装Swagger配置
  • .NET Micro Framework 4.2 beta 源码探析