在安卓开发过程中。toast使我们常常使用的一个类。当我们须要向用户传达一些信息,可是不须要和用户交互时,该方式就是一种十分恰当的途径。

我们习惯了这样使用toast:Toast.makeText(Context context, String
info, int duration).show();该方法是

系统为我们提供的一个方便的创建toast对象的静态方法,其内部依旧是调用toast的相关方法完毕。以下

就从其源代码对该类的实现做一个分析

在toast类中,最重要的用于显示该toast的show方法调用了service.enqueueToast(pkg, tn, mDuration);也就是说

系统为我们维持了一个toast队列,这也是为什么两个toast不会同一时候显示的原因。该方法将一个toast入队,显示则由系统维持显示的时机。

 private static INotificationManager sService;


    static private INotificationManager getService() {
        if (sService != null) {
            return sService;
        }
        sService = INotificationManager.Stub.asInterface(ServiceManager.getService("notification"));
        return sService;
    }
该服务sService就是系统用于维护toast的服务。

在toast内部又一个静态私有类TN,该类是toast的主要实现,该类完毕了toast视图的创建,等等

fa

android源代码分析 android toast使用具体解释 toast自己定义的更多相关文章

  1. Android源代码分析之拍照、图片、录音、视频和音频功能

    Android源代码分析之拍照.图片.录音.视频和音频功能   //选择图片 requestCode 返回的标识 Intent innerIntent = new Intent(Intent.ACTI ...

  2. Cordova Android源代码分析系列一(项目总览和CordovaActivity分析)

    版权声明:本文为博主offbye西涛原创文章.未经博主同意不得转载. https://blog.csdn.net/offbye/article/details/31776833 PhoneGap/Co ...

  3. 【Android 系统开发】下载 编译 Android源代码 和 Android kernel源代码

    下载Android源码简要流程 : a. 获取repo文件: curl http://commondatastorage.googleapis.com/git-repo-downloads/repo ...

  4. 下载 编译 Android源代码 和 Android kernel源代码

    下载Android源码简要流程 : a. 获取repo文件: curl http://commondatastorage.googleapis.com/git-repo-downloads/repo ...

  5. 结合源代码分析android的消息机制

    描写叙述 结合几个问题去看源代码. 1.Handler, MessageQueue, Message, Looper, LocalThread这5者在android的消息传递过程中扮演了什么样的角色? ...

  6. Android源代码分析-资源载入机制

    转载请注明出处:http://blog.csdn.net/singwhatiwanna/article/details/23387079 (来自singwhatiwanna的csdn博客) 前言 我们 ...

  7. MonkeyRunner源代码分析Android通信设备

    正如前面<谁动了我的截图?--Monkeyrunner takeSnapshot方法源代码跟踪分析>所述,本文主要会尝试描写叙述android的自己主动化測试框架MonkeyRunner到 ...

  8. Android源代码分析之Framework的MediaPlayer

    在Android中MediaPlayer用来播放音频和视频文件,在这里分析下在Framework层中MediaPlayer是怎样调用的.MediaPlayer的代码位于:./frameworks/ba ...

  9. 从Handler+Message+Looper源代码带你分析Android系统的消息处理机制

    PS一句:不得不说CSDN同步做的非常烂.还得我花了近1个小时恢复这篇博客. 引言 [转载请注明出处:http://blog.csdn.net/feiduclear_up CSDN 废墟的树] 作为A ...

随机推荐

  1. Sqli-labs less 3

    Less-3 我们使用?id=' 注入代码后,我们得到像这样的一个错误: MySQL server version for the right syntax to use near "&qu ...

  2. Python开发基础-Day14正则表达式和re模块

    正则表达式 就其本质而言,正则表达式(或 re)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现.正则表达式模式被编译成一系列的字节码,然后由用 ...

  3. 洛谷P2782 友好城市

    题目描述 有一条横贯东西的大河,河有笔直的南北两岸,岸上各有位置各不相同的N个城市.北岸的每个城市有且仅有一个友好城市在南岸,而且不同城市的友好城市不相同.没对友好城市都向政府申请在河上开辟一条直线航 ...

  4. JZYZOJ1383 [usaco2003feb]impster 位运算 最短路

    http://172.20.6.3/Problem_Show.asp?id=1383  找能到达某个状态的最小操作数,然后把所有状态扫一遍即可,要额外判定一下起始就有的状态(如果起始里没有0那么这些状 ...

  5. [转] Log4j 配置 的webAppRootKey参数问题

    在tomcat下部署两个或多个项目时,web.xml文件中最好定义webAppRootKey参数,如果不定义,将会缺省为“webapp.root”,如下:<!-- 应用路径 --> < ...

  6. CentOS通过日志反查入侵(转)

    1.查看日志文件 Linux查看/var/log/wtmp文件查看可疑IP登陆 last -f /var/log/wtmp  该日志文件永久记录每个用户登录.注销及系统的启动.停机的事件.因此随着系统 ...

  7. Composer安装和laravel下载

    1 下载Composer http://www.phpcomposer.com/ php我先选的是5.5.38的, 但是 laravel5.1 PHP版本 >= 5.5.9 laravel5.2 ...

  8. C#读取Windows日志

    管理-->事件查看器     可以查看[应用程序].[安全].[系统]等分类的日志 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 2 ...

  9. Oracle 11gR2 RAC连接时ORA-12545错误

    刚装成的Oracle 11gR2的RAC集群 三个节点 创建好数据库,一切都在正常的进行中 然后去安装了一个oracle client,进行链接时出现了ORA-12545 然后简单的baidu了一下, ...

  10. mac 安装 composer

    使用 curl 指令下载: curl -sS https://getcomposer.org/installer | php 或是沒有安裝 curl ,也可以用 php 指令下载: php -r &q ...