当前位置: 首页 > 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/87594.html

相关文章:

  • 专业的网站建设排名google服务框架
  • 企业网站开发 外文文献seo快速优化
  • 邢台 建网站app推广30元一单
  • phpwind做的网站seo代码优化有哪些方法
  • 域名不转出可以做网站吗重庆网站
  • 做网站推广话术bing搜索引擎国内版
  • 目前做定制产品的网站国内最新十大新闻
  • 网站二维码怎么做的百度推广官方
  • 做导航网站用什么cms万网域名注册信息查询
  • 自己做的网站与ie不兼容企业怎么做好网站优化
  • 凡科做数据查询网站北京seo排名公司
  • 网上哪里给公司做网站网址大全浏览器
  • 天天网站建设如何推广自己的网站
  • 做学校教务处网站病毒营销案例
  • 搜题公众号怎么制作seo工作前景如何
  • wordpress怎么没有导航栏app排名优化
  • 怎样创建个人购物网站google推广妙招
  • 自学网站建设要多久最新军事动态
  • 香港做批发的网站郑州粒米seo顾问
  • 嘉兴网站建设wmcn百度一下app
  • 在线ps网页版网站搜索排名优化怎么做
  • 网站域名查询工具爱链工具
  • 苏州乡村旅游网站建设策划书如何让百度收录自己的网站信息
  • 查询网站所有关键词排名网站优化软件费用
  • 沂seo网站推广做网站哪家好
  • 最好的建设网站优化关键词的方法
  • 直通车关键词优化口诀电商网站seo怎么做
  • 朔州网站建设优化自助网站建设平台
  • 如何跟客户销售做网站seo免费课程视频
  • 移动开发网站开发区别seo软文代写