toast用于向用户显示一些帮助和提示信息
特点:
1、没有焦点;
2、显示时间有限,自动消失。
我们简单的创建一个按钮,绑定onclick事件,如下调用Toast事件
Toast.makeText(this, "toast", Toast.LENGTH_LONG).show();
运行之后效果如下:
我们来详细看一下Toast.makeText()的javadoc
第一个参数需要传入一个Context,第二个是提示文本,第三个是显示的时间。
关于第一个参数Context,上面写着通常是传入android.app.Application或者android.app.Activity。而我们传入的是this,也就是Activity。另外,我们还可以传this.getApplicationContext(),也就是Application。
想必Activity和Application一定是Context的子类,或者实现了Context接口。
我们参看一下android API 的Context类,如下:
context提供了关于应用环境的全局信息接口。它是一个抽象类,由android系统提供实现。通过context我们可以加载资源,获取由android系统提供的一些服务类。
简单点说,就是我们的应用程序通过context与系统的其他环境打交道。
而Activity Context和Application Context有什么区别呢?该用哪个呢?我们来看一下官方对getApplicationContext()方法的说明
简而言之ApplicationContext生命周期长。但是,如果你什么地方都是去用ApplicationContext的话,容易造成内存泄漏。
我们可以把Activity Context和Application Context对比javaweb中的request和aplication来学习。他们有相似的地方。前者生命周期是当前请求,后者是整个应用。