首页 > 编程语言 >【设计模式】建造者模式——建造者模式在Android SDK源码中的应用

【设计模式】建造者模式——建造者模式在Android SDK源码中的应用

时间:2024-01-08 19:36:17浏览次数:37  
标签:NotificationCompat Builder 建造 AlertDialog 源码 new Android 设计模式

建造者模式在Android SDK源码中也有广泛的应用,本文挑两个典型的类讨论一下:

AlertDialog.Builder

在Android源码中最常用到的建造者模式非AlertDialog.Builder莫属,代码如下:

AlertDialog alertDialog = new AlertDialog.Builder(mContext)
		.setTitle("系统提示:")
    .setMessage("请及时查收邮件")
    .setNegativeButton("取消", null)
    .setPositiveButton("确定", new DialogInterface.OnClickListener() {
    		@Override
        public void onClick(DialogInterface dialog, int which) {
        		// 跳转查看邮件页面
        }
     }).create();
alertDialog.show();


NotificationCompat.Builder

出于安全方面的考虑,当前版本Android官方推荐使用构造方法含有channelId的NotificationCompat.Builder来代替Nofication.Builder生成Notification对象,代码如下:

Notification notification = new NotificationCompat.Builder(mContext,"channelId")
		.setContentTitle("New mail from " + sender.toString())
    .setContentText(subject)
    .setSmallIcon(R.drawable.new_mail)
    .setLargeIcon(aBitmap)
    .build();


标签:NotificationCompat,Builder,建造,AlertDialog,源码,new,Android,设计模式
From: https://blog.51cto.com/dongfeng9ge/9149125

相关文章

  • 2023 年精选:每个 DevOps 团队都应该了解的 5 种微服务设计模式
    微服务彻底改变了应用程序开发世界,将大型整体系统分解为更小、更易于管理的组件。这种架构风格的特点是独立、松散耦合的服务,带来了从可扩展性、模块化到更高的灵活性等众多优势。DevOps团队如何最好地利用这种方法来实现最高效率?答案在于理解并有效地采用微服务设计模式。在本文......
  • Spring MVC 源码分析 - RequestToViewNameTranslator 组件
    RequestToViewNameTranslator组件RequestToViewNameTranslator 组件,视图名称转换器,用于解析出请求的默认视图名。就是说当ModelAndView对象不为 null,但是它的View对象为 null,则需要通过 RequestToViewNameTranslator 组件根据请求解析出一个默认的视图名称。回顾先来回顾......
  • Java医院医学AI智能导诊系统源码
    医院智能导诊系统是一款基于人工智能和大数据技术开发的医疗辅助软件,旨在为患者提供更加便捷、精准的医疗服务。一、什么是智能导诊系统?智能导诊系统是一种基于人工智能和大数据技术开发的医疗辅助软件,它能够通过对患者的症状、病史等信息进行计算分析,快速推荐科室和医生。通过简......
  • 【设计模式】单例模式——单例模式变体之“多例模式”
    所谓“多例模式”并不在GoF的23种设计模式之内,是单例模式中的一种特例,在很多资料中也被称为单例模式的容器式实现。“多例模式”可以理解为在一定数量范围内创建类的多个实例(简称“说法一”);还有一层理解就是不同类型的对象可以创建多个,但相同类型的对象只能创建一个(简称“说法二”)......
  • Python 爬虫,Nendo 网站作品信息采集爬虫源码!
    简单的网站写爬虫就跟流水线加工一样,抄抄改改,没有问题就直接上了,直接了当省事,又是一篇没有营养的水文。一个比较简单的爬虫,适合练手学习使用,主要是爬取和采集网站的作品信息,包括标题、内容及图片,其中图片采用了多线程爬取。考虑到外网爬取,所以采用了三次访问超时重试的机制,同时对于......
  • slf4j+logback源码加载流程解析
    slf4j绑定logback源码解析Loggerlog=LoggerFactory.getLogger(LogbackDemo.class);如上述代码所示,在项目中通常会这样创建一个Logger对象去打印日志。然后点进去,会走到LoggerFactory的getILoggerFactory()方法,如下代码所示。publicstaticILoggerFactorygetILoggerFactory()......
  • 医学检验科LIS系统,LIS检验系统源码
    LIS系统功能模块字典模块:系统参数、标本管理、试管管理、平台设备管理、送检类型管理、检验项目管理、检查组合管理、项目转换管理。报告模块:试管条码打印、检验报告管理、报告登记、报告接收、报告打印、历史数据查询、数据存根、报告审核。质控模块:质控品管理、质控规则管理......
  • 【设计模式】单例模式——单例模式的懒汉式和DCL式实现
    懒汉式为了解决饿汉式单例带来的内存浪费问题,出现了懒汉式单例的写法,代码如下:publicclassSingleton{privatestaticSingletoninstance=null;privateSingleton(){}publicstaticSingletongetInstance(){if(instance==null){insta......
  • 设计模式Java实战,彻底学会
    这是全网最强的Java设计模式实战教程。此教程用实际项目场景,结合SpringBoot,让你真正掌握设计模式。网址是:Java设计模式实战专栏介绍-自学精灵(也可以百度搜索“自学精灵”)。本设计模式专栏的威力用Java实战来介绍常用的设计模式,让你真正掌握设计模式。用项目实际场景进行设计模式......
  • Java智慧工地可视化APP信息管理平台源码
    智慧工地信息化解决方案、智慧工地信息管理平台智慧工地系统以推进施工过程管理信息化、数字化、智慧化为手段,促进第五代通信技术(5G)、大数据、智能设备、人工智能等与建筑工程管理进一步融合。智慧化工地建设全面加速,以数字技术助力建筑工地转型升级、提速增效、提档升级的成......