android入门(七) 消息提示toast和Context

toast用于向用户显示一些帮助和提示信息
特点:
1、没有焦点;
2、显示时间有限,自动消失。

我们简单的创建一个按钮,绑定onclick事件,如下调用Toast事件

        Toast.makeText(this, "toast", Toast.LENGTH_LONG).show();

运行之后效果如下:
android入门(七) 消息提示toast和Context_第1张图片

我们来详细看一下Toast.makeText()的javadoc
android入门(七) 消息提示toast和Context_第2张图片
第一个参数需要传入一个Context,第二个是提示文本,第三个是显示的时间。

关于第一个参数Context,上面写着通常是传入android.app.Application或者android.app.Activity。而我们传入的是this,也就是Activity。另外,我们还可以传this.getApplicationContext(),也就是Application。

想必Activity和Application一定是Context的子类,或者实现了Context接口。

我们参看一下android API 的Context类,如下:
android入门(七) 消息提示toast和Context_第3张图片

context提供了关于应用环境的全局信息接口。它是一个抽象类,由android系统提供实现。通过context我们可以加载资源,获取由android系统提供的一些服务类。

简单点说,就是我们的应用程序通过context与系统的其他环境打交道。

而Activity Context和Application Context有什么区别呢?该用哪个呢?我们来看一下官方对getApplicationContext()方法的说明
android入门(七) 消息提示toast和Context_第4张图片
简而言之ApplicationContext生命周期长。但是,如果你什么地方都是去用ApplicationContext的话,容易造成内存泄漏。

我们可以把Activity Context和Application Context对比javaweb中的request和aplication来学习。他们有相似的地方。前者生命周期是当前请求,后者是整个应用。

你可能感兴趣的:(android)