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

Android Notification 通过增加addAction 跳转回Service重新执行逻辑

1.场景描述

    在App内升级过程中,apk下载过程中网络波动导致连接超时,下载失败后Service生命周期结束。前台通知也被清除。

2.解决思路

    在通知栏中增加重试按钮重启下载服务。

3.代码

  NotificationManager mNotificationManager = (NotificationManager)   getSystemService(Context.NOTIFICATION_SERVICE);Builder mBuilder = new Builder(this);if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {NotificationChannel channel = new NotificationChannel(CHANNEL_ID, CHANNEL_NAME,                NotificationManager.IMPORTANCE_DEFAULT);mNotificationManager.createNotificationChannel(channel);mBuilder.setSmallIcon(R.mipmap.ic_launcher).setContentTitle(title).setContentText(text).setChannelId(CHANNEL_ID).setTicker(ticker);} else {mBuilder.setSmallIcon(R.mipmap.ic_launcher).setContentTitle(title).setContentText(text).setTicker(ticker);}Intent intentService = new Intent(this, ApkDownloadService.class);intentService.putExtra("updateInfo", mAppUpdateResponse);intentService.putExtra("updateType", 1);PendingIntent pendingIntent = PendingIntent.getService( this, 0, intentService, PendingIntent.FLAG_IMMUTABLE);mBuilder.addAction(R.mipmap.ic_launcher, getString(R.string.retry), pendingIntent);mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());

4.效果图

http://www.xdnf.cn/news/15032.html

相关文章:

  • 中山排气歧管批量自动化智能化3D尺寸测量及cav检测分析
  • QNX中timer的使用
  • 【C++】容器适配器 + stack/queue/deque详解
  • Android-重学kotlin(协程源码第二阶段)新学习总结
  • 【Linux网络编程】Socket - TCP
  • linux-进程信号的产生与发送
  • WPF使用WebBrowser 解决href标签target=_blank在浏览器窗口打开新链接而非窗体内部打开的问题
  • Python 项目快速部署到 Linux 服务器基础教程
  • 【macOS】【Swift】不让App采用macOS的外观风格,直接保持白色背景,怎么处理?
  • 区块链平台以太坊核心原理
  • [Backlog] 核心协调器 | 终端用户界面(TUI)实现 | 多分支任务冲突解决 | 测试验证体系
  • 以太坊智能合约核心技术解析与应用实践
  • Energy-Based Transformers:实现通用系统2思维的新范式
  • docker部署华为高斯数据库opengauss(arm版本)
  • python作业 1
  • 如何通过配置gitee实现Claude Code的版本管理
  • 网络请求与现实生活:用办理业务类比理解HTTP通信
  • Linux 测开:日志分析 + 定位 Bug
  • Android-重学kotlin(协程基础)新学习总结
  • 安卓10.0系统修改定制化____修改ROM 实现自动开启USB 安装选项
  • UI前端与数字孪生融合新领域拓展:智慧教育的虚拟实验室建设
  • UI前端大数据处理性能评估与优化:基于负载测试的数据处理能力分析
  • Python管理咨询数据可视化实战:收入分布与顾问利用率双轴对比图表生成脚本
  • Amazon S3 对象存储服务深度解析:存储原理、应用场景与实战指南
  • 力扣网编程150题:加油站(贪心解法)
  • 第四节 chatPDF
  • Java-----韩顺平单例设计模式学习笔记
  • Ubuntu防火墙缺失问题(unit firewalld.service could not be found, ubuntu 22)
  • 小赛安全智脑×动态MCP Server:让组件API对接像搭积木一样简单
  • 闲庭信步使用图像验证平台加速FPGA的开发:第七课——获取RAW图像