在实现一个功能的时候,遇到了Toast一直不消失的问题,因此,对Toast进行了一些研究。

先描述问题:有一个activity和一个thread,都有各自的handler。activity启动thread,双方通过handler进行交互。当在thread中运行到某种情况,会弹出toast进行信息提示,若此时退出activity,会出现Toast一直不消失的情况,直到用户手动清理内存才会消失。

通过查找资料了解到,Toast在创建时有一个context参数,通常我们是将一个activity做为context参数传递进去的。若activity完全退出了,则Toast的工作环境异常,某些动作就不能实现了,例如hide()或者cancle()不能正常调用运行,表现出来就是提示信息不能自动消失。

调用Toast的show(),是将一个要显示的消息入了队列,调用cancel()即可取消。另外,Toast信息提示框在显示一定时间后也会自动关闭,是因为在调用show()方法后,将消息加入了系统的Toast队列。系统会依次从队列中取出一个Toast,并显示它。在显示一段时间后,再关闭,然后再显示下一个Toast信息提示框。直到Toast队列中所有Toast都显示完为止。

然而,我在thread的handler里面,在收到退出消息时,调用了Toast的cancel(),仍然不能解决问题。

后来想到一点:收到activity发出的退出消息时,是否已经有所滞后了,此时会不会activity已经被销毁了? 
基于这点考虑,我将消息的显示与cancel()都转移到activity中来实现,最终解决了问题。

通常我们调用Toast是这样做的,

Toast不消失问题的更多相关文章

  1. Toast通知

    win10 app 开发中Toast通知的模板只有一种,统一为 ToastGeneric 通用型通知,本文我们来讲讲 Toast 的 XML文档相关知识. 在以前8.1时候的Toast通知方式,到了W ...

  2. [深入浅出WP8.1(Runtime)]Toast通知

    9.1 Toast通知 Toast通知是在屏幕最顶上弹出来的临时通知,是Windows Phone通用的弹出式短暂的通知,默认的系统消息都是采用Toast通知的形式,比如当你手机收到短信的时候,在手机 ...

  3. 从源码角度深入理解Toast

    Toast这个东西我们在开发中经常用到,使用也很简单,一行代码就能搞定: 1: Toast.makeText(", Toast.LENGTH_LONG).show(); 但是我们经常会遇到这 ...

  4. c# winform 类似android toast消息功能

    先看下效果: 支持动画,支持声音,支持定时自动关闭 使用方法: var notifycation = new Notification("My Notification", &qu ...

  5. jquery toast插件

    插件描述:Toaster.js是一款Material Design风格jquery toast插件.Toaster.js提供5种主题,以及众多配置参数,用于显示toast类型的消息提示框.兼容性如下: ...

  6. appium应用切换以及toast弹出框处理

    一.应用切换 应用切换的方法很简单,直接调用driver.start_activity()方法,传入app_package和app_activity参数,示例代码如下: from appium imp ...

  7. angular6 使用信息提示框toast

    angular6 可以使用的toast插件有好多个,在目前来看ngx-toastr在过去一年时间的使用量和受欢迎程度可以说是一骑绝尘,如下图: 我也就选择了ngx-toastr这个插件,使用步骤如下: ...

  8. 微信小程序开发之模板

    一.简介 WXML提供模板(template),可以在模板中定义代码片段,然后在不同的地方调用. 定义模板 使用name属性,作为模板的名字.然后在<template/>内定义代码片段,如 ...

  9. MUI框架的缩写输入

    html      上面--代表最小触发字符      下面--代表非必要完整触发字符 组件 触发字符 mDoctype(mui-dom结构) mdo ctype mBody(主体) mbo dy m ...

随机推荐

  1. CF999E Reachability from the Capital来自首都的可达性

    题目大意: 有n个节点m条边,边都是单向的,请你添加最少的边使得起点s到其他与其他每一个点之间都能互相到达 这题一看就是一个缩点啊 其实对于原有的m条边相连的一些点,如果之前他们已经形成了强连通分量( ...

  2. Windows L2TP Client Setup

    原文链接:http://www.softether.org/4-docs/2-howto/9.L2TPIPsec_Setup_Guide_for_SoftEther_VPN_Server/4.Wind ...

  3. SpeedReader for Mac(快速阅读器)v1.6免费版

    SpeedReader for Mac是一款运行在Mac平台上的阅读软件,通过这款软件就可以自行调整阅读速度.通过SpeedReader Mac版用户可以将想要阅读的内容拖入到软件中,调整速度和字体, ...

  4. db2 varchar字段类型太大问题

    [DB2]SQL1585N 由于没有具有兼容页面大小的可用系统临时表空间,因此无法创建临时表.SQLSTATE=54048 自己写了一段SQL,SQL中包含ORDER BY 字句,但是在执行的时候报错 ...

  5. Dart 语法

    Dart 语法 说明 var 类似于JavaScript中的var:最大的不同是Dart中var变量一旦赋值,类型便会确定,则不能再改变其类型 Object Object 是dart所有对象的根基类, ...

  6. 关于让simulink中display组件显示二进制的方法

    关于让simulink中display组件显示二进制的方法 1.首先需要配置gateway out模块,勾选propagate data type to output 2.配置display模块 fo ...

  7. Vue.js中ref ($refs)用法举例总结

    原文地址:http://www.cnblogs.com/xueweijie/p/6907676.html <div id="app"> <input type=& ...

  8. FM与PM信号的表现形式

    角度调制可以写成如下形式: $u(t)=A_c cos(2\pi f_c t + \phi (t) )$ $A_c cos(2\pi f_c t)$是载波,调制信号控制$\phi (t)$. 对于PM ...

  9. RN 获取组件的宽度和高度

    https://www.cnblogs.com/zhiyingzhou/p/7471212.html https://blog.csdn.net/calvin_zhou/article/details ...

  10. IIS应用程序池权限与虚拟目录身份验证权限

    IIS应用程序池用户权限决定了IIS进程对资源的访问权限.例如在服务器aspx代码中修改web.config或者在某个目录写入文件,就需要应用程序池用户对指定文件或目录修改权限. 虚拟目录身份验证权限 ...