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

安徽seo人员南宁seo专员

安徽seo人员,南宁seo专员,网站建设源代码文件,科技项目申报首先抛出异常日志,在 先说结论:因为session安装监听是在点击事件里面,所以会保留旧的对象数据 直接上代码,原有的逻辑是点击时执行session安装,并注册监听回调 private fun installApk(position: Int) {val packageIns…

首先抛出异常日志,在

先说结论:因为session安装监听是在点击事件里面,所以会保留旧的对象数据

直接上代码,原有的逻辑是点击时执行session安装,并注册监听回调

  private fun installApk(position: Int) {val packageInstaller = packageManager.packageInstallerval params =PackageInstaller.SessionParams(PackageInstaller.SessionParams.MODE_FULL_INSTALL)params.setSize(File(itemList[position].path).length())val sessionId = packageInstaller.createSession(params)val session = packageInstaller.openSession(sessionId)// 注册安装进度监听器val sessionCallback = object : PackageInstaller.SessionCallback() {override fun onCreated(sessionId: Int) {// 安装会话创建成功Log.i("InstallProgress", "Session created: $sessionId")}override fun onProgressChanged(sessionId: Int, progress: Float) {// 安装进度更新itemList[mPosition].installed = 1itemList[mPosition].progress = progress * 100adapter.notifyItemChanged(mPosition)Log.d("install","onProgressChanged: $mPosition ${itemList[mPosition].installed} $progress")}override fun onFinished(sessionId: Int, success: Boolean) {if (success) {// 安装成功itemList[mPosition].installed = 2} else {// 安装失败itemList[mPosition].installed = 3}adapter.notifyItemChanged(mPosition)Log.d("install","onProgressChanged: $mPosition ${itemList[mPosition].installed} $success")}override fun onActiveChanged(sessionId: Int, active: Boolean) {// 安装会话激活状态发生变化}override fun onBadgingChanged(sessionId: Int) {// 应用图标发生变化}}// 注册监听器packageManager.packageInstaller.registerSessionCallback(sessionCallback)try {val inputStream = FileInputStream(itemList[position].path)val outputStream = session.openWrite("base.apk", 0, -1) // -1 表示自动计算大小inputStream.copyTo(outputStream)session.fsync(outputStream)inputStream.close()outputStream.close()val intent = Intent(context, PackageInstallReceiver::class.java).apply {action = itemList[position].pkgputExtra(PackageInstaller.EXTRA_PACKAGE_NAME, itemList[position].pkg)}val pendingIntent = PendingIntent.getBroadcast(context,0,intent,PendingIntent.FLAG_UPDATE_CURRENT)session.commit(pendingIntent.intentSender)} catch (e: IOException) {session.abandon()e.printStackTrace()}}

修改后,将监听注册到onCreate中,并

    override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)// 注册监听器packageManager.packageInstaller.registerSessionCallback(sessionCallback)}// 注册安装进度监听器private val sessionCallback = object : PackageInstaller.SessionCallback() {override fun onCreated(sessionId: Int) {// 安装会话创建成功Log.i("InstallProgress", "Session created: $sessionId")}override fun onProgressChanged(sessionId: Int, progress: Float) {// 安装进度更新itemList[mPosition].installed = 1itemList[mPosition].progress = progress * 100adapter.notifyItemChanged(mPosition)Log.d("installApk", "onProgressChanged: $mPosition ${itemList[mPosition].installed} $progress")}override fun onFinished(sessionId: Int, success: Boolean) {if (success) {// 安装成功itemList[mPosition].installed = 2} else {// 安装失败itemList[mPosition].installed = 3}adapter.notifyItemChanged(mPosition)Log.d("installApk", "onProgressChanged: $mPosition ${itemList[mPosition].installed} $success")}override fun onActiveChanged(sessionId: Int, active: Boolean) {// 安装会话激活状态发生变化}override fun onBadgingChanged(sessionId: Int) {// 应用图标发生变化}}private fun installApk(position: Int) {val packageInstaller = packageManager.packageInstallerval params =PackageInstaller.SessionParams(PackageInstaller.SessionParams.MODE_FULL_INSTALL)params.setSize(File(itemList[position].path).length())val sessionId = packageInstaller.createSession(params)val session = packageInstaller.openSession(sessionId)try {val inputStream = FileInputStream(itemList[position].path)val outputStream = session.openWrite("base.apk", 0, -1) // -1 表示自动计算大小inputStream.copyTo(outputStream)session.fsync(outputStream)inputStream.close()outputStream.close()val intent = Intent(context, PackageInstallReceiver::class.java).apply {action = itemList[position].pkgputExtra(PackageInstaller.EXTRA_PACKAGE_NAME, itemList[position].pkg)}val pendingIntent = PendingIntent.getBroadcast(context,0,intent,PendingIntent.FLAG_UPDATE_CURRENT)session.commit(pendingIntent.intentSender)} catch (e: IOException) {session.abandon()e.printStackTrace()}}

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

相关文章:

  • html网站分页怎么做网络整合营销方案ppt
  • 项目怎样做网站的优化、排名
  • 中企动力300官网seo优化关键词排名
  • 网站域名申请了该怎么做创建自己的网站
  • 装饰网站建设长春网站建设制作
  • 如何提高网站的访问速度东莞seo建站投放
  • 做淘宝网站的主机宁波网站推广找哪家公司
  • 湖北建设工程信息网站网络推广与推广
  • 小型网站建设实训教程友情链接检索数据分析
  • 网站域名申请流程app制作费用一览表
  • 平面设计师和网页设计师哪个好求好用的seo软件
  • 卓越职业院校建设专题网站seo全称是什么
  • 网站建站客户需求表单2022最新小学生新闻
  • 深圳极速网站建设推荐关键词优化是怎么做的
  • 太原疫情最新信息台州做优化
  • 网站信息服务费怎么做凭证如何建立网页
  • 备案 网站名称 怎么改网站如何让百度收录
  • 做的网站如何放在电脑上企业培训师资格证报考2022
  • asp网站如何发布武汉百度推广优化
  • 网站建设功能评估表软文写作模板
  • 金普新区城乡建设局网站张家口网站seo
  • php网站超市正规的培训机构有哪些
  • 网站开发任务完成情况网络安全培训
  • 深圳全网站建设公司手机优化大师官网
  • 中国今日重大新闻优化排名seo
  • 建材网站做环保类型思路武汉seo首页优化技巧
  • 现在的网站是用什么软件做的百度竞价规则
  • 广州建设水务局网站网站seo推广排名
  • 小学微机作业做网站球队排名榜实时排名
  • 简易静态网站制作流程图2024新闻热点事件