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

中国网站制作公司排名网页开发需要学什么

中国网站制作公司排名,网页开发需要学什么,邯郸市地图高清版最新,营销型网站建设概述通过AlarmManager添加定时任务,即使应用被杀死了,也会启动intent 用户静默安装前,定时自启动自身应用。直到应用启动完成,取消其他的定时任务 object InstallAppUtils {const val DEBUG_UPDATE falseprivate const val PACKAGE…

通过AlarmManager添加定时任务,即使应用被杀死了,也会启动intent

用户静默安装前,定时自启动自身应用。直到应用启动完成,取消其他的定时任务

object InstallAppUtils {const val DEBUG_UPDATE = falseprivate const val PACKAGE_NAME = "com.demo.test"suspend fun installApkCmd(context: Context,filepath: String,onFailed: () -> Unit,onSuccess: () -> Unit) {LogUtils.d("InstallAppUtils installApk filepath=${filepath}")try {val apkFile = File(filepath)scheduleAppRestart(context)MmkvUtils.saveUpdatingApkFilePath(apkFile.absolutePath)delay(500)//延迟执行命令,先做好升级前的准备val process = Runtime.getRuntime().exec(arrayOf("su", "0", "pm", "install", "-r", apkFile.absolutePath))process.waitFor()if (process.exitValue() == 0) {// 安装成功LogUtils.d("APK 静默安装成功")onSuccess.invoke()} else {// 安装失败,可读取错误流以获取详细信息val errorStream = process.errorStream.bufferedReader().readText()LogUtils.d("APK 静默安装失败:$errorStream")apkFile.delete()onFailed.invoke()}} catch (e: Exception) {e.printStackTrace()}}fun clearUpdatingFile() {try {MmkvUtils.getUpdatingApkFilePath()?.let { path ->if (path.isNotEmpty()) {LogUtils.d("InstallAppUtils clearUpdatingFile $path")val file = File(path)if (file.exists()) {file.delete()}}}} catch (e: Exception) {e.printStackTrace()} finally {MmkvUtils.clearUpdatingApkFilePath()}}/*** 通过AlarmManager尝试每隔10秒启动应用*/fun scheduleAppRestart(context: Context) {// 构造启动应用的 Intent,这里假设 MainActivity 为入口var triggerAtMillis = System.currentTimeMillis() + 10_000Lval alarmManager = context.getSystemService(Context.ALARM_SERVICE) as AlarmManagerrepeat(6) {triggerAtMillis += 10_000LgetRestartPendingIntent(context, it)?.let { pendingIntent ->// setExactAndAllowWhileIdle 确保在低功耗模式下也能执行alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP,triggerAtMillis,pendingIntent)}}}// 取消启动应用的定时任务fun cancelAlarm(context: Context) {val alarmManager = context.getSystemService(Context.ALARM_SERVICE) as AlarmManagerrepeat(6) {getRestartPendingIntent(context, it)?.let { pendingIntent ->alarmManager.cancel(pendingIntent)}}}private fun getRestartPendingIntent(context: Context, requestCode: Int): PendingIntent? {
//        val intent = Intent().apply {
//            component = ComponentName(PACKAGE_NAME, LAUNCH_ACTIVITY)
//            addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK)
//        }val launchIntent: Intent? =getPackageManager().getLaunchIntentForPackage(PACKAGE_NAME)return PendingIntent.getActivity(context,requestCode,launchIntent,PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE)}
}

http://www.dtcms.com/wzjs/286361.html

相关文章:

  • 网站安全如何做个人博客网站怎么做
  • dw做的网站如何用手机看微商软文推广平台
  • 海南省人民政府网站长之家seo一点询
  • 网站开发与设计.net厦门关键词排名优化
  • 长沙哪些公司做网站宁波企业seo推广
  • 中国电商平台做抖音seo排名软件是否合法
  • 临西做网站报价电商网站销售数据分析
  • 寻找大连网站建设自动点击器下载
  • 外贸自建站是什么意思北京优化核酸检测
  • 青岛谁做网站多少钱天津seo网络营销
  • 做网站跳转怎么收费软文推广发稿平台
  • 邢台网站建设厂家淘宝如何刷关键词增加权重
  • 企业设计网站公司seo公司系统
  • 空间设计logo重庆放心seo整站优化
  • 先网站开发后软件开发好杭州做网站的公司排行
  • 全国建设信息网站企业宣传推广
  • 公司想为一个产品做多个网站上海seo公司排名
  • 亚星网站代理百度推广客户端下载网址
  • 基本原理网站建设数据平台
  • wordpress批量导入用户搜索引擎优化的要点
  • 定制网站开发报价搜索引擎是什么意思啊
  • dw做的网站如何上传云服务器网上销售渠道
  • 网站制作的企业有哪些网站推广优化方法
  • 动态网站建设 作业株洲24小时新闻
  • wordpress 全站备份软文平台有哪些
  • 网站死链怎么处理中央刚刚宣布大消息
  • 音乐网站怎么做社交的百度新闻网
  • 手机网站免费空间老铁seo外链工具
  • 响应式潍坊网站建设推广图片大全
  • wordpress简洁设置seo培训师