Android笔记1
来源:互联网 发布:java刷题网站 编辑:程序博客网 时间:2024/05/22 09:03
开始学习Android中,有很多东西都不懂,一下列举一下遇到的问题:
1. Android 中Context是什么,作用是什么
Android中,一个view类中,入参通常是Context,那么其作用是什么呢?
Context翻译过来为上下文,或环境。顾名思义就是提供了一个环境或上下文信息。有些组件或者控件应用 但是,需要知道它们所在的环境或上下文信息,而这些具体的上下文信息,就是Android自带的实现了Context接口的各种类了,其最主要的功能是加载和访问资源。相当于Widnows中的句柄。
2. getApplicationContext作用是什么
getApplicationContext()返回应用的上下文,生命周期是整个应用,应用摧毁它才摧毁。
以下是一段比较有意思的摘录:
浅论一下context : 在语句 AlertDialog.Builder builder = new AlertDialog.Builder(this); 中,要求传递的 参数就是一个context,在这里我们传入的是this,那么这个this究竟指的是什么东东呢? 这里的this指的是Activity.this,是这个语句所在的Activity的this,是这个Activity 的上下文。网上有很多朋友在这里传入this.getApplicationContext(),这是不对的。 AlertDialog对象是依赖于一个View的,而View是和一个Activity对应的。 于是,这里涉及到一个生命周期的问题,this.getApplicationContext()取的是这个应 用程序的Context,Activity.this取的是这个Activity的Context,这两者的生命周期是不同 的,前者的生命周期是整个应用,后者的生命周期只是它所在的Activity。而AlertDialog应 该是属于一个Activity的,在Activity销毁的时候它也就销毁了,不会再存在;但是,如果传 入this.getApplicationContext(),就表示它的生命周期是整个应用程序,这显然超过了它 的生命周期了。 所以,在这里我们只能使用Activity的this。
3. Toast如何使用,要注意些什么
其作用是是弹出一个小信息,作为提醒用户或消息反馈来用,相当于windows的MessageBox。
Toast的一个最简单的应用是:
Toast.makeText(Toast.makeText(getApplicationContext(), "默认Toast样式",
Toast.LENGTH_SHORT).show();
其第一个参数是Context,此处用到的getApplicationContext()是获取整个应用程序的Context句柄,如果在某一个View类中使用,由于view是应用程序的一个Activity(在Android中Activity主要是用来做控制的)的一个实例,http://www.eoeandroid.com/thread-198874-1-1.html此处详细描述了什么是Activity。
在一个view中使用getApplicationContext()明显不对的,通过上面也了解到,this指针其实是整个view的context,通过this指针同样可以获取当前view类的context,从而确定toast在哪里弹出。我使用的是this.getContext(),可以在view中触发toast,而当view销毁后,就显示不出来了。
- android学习笔记1
- Android笔记1
- Android学习笔记-1
- android 笔记 1
- Android笔记1
- 【Android笔记】(1)HelloWorld
- android学习笔记1
- android学习笔记(1)
- android 笔记1
- Android 学习笔记1
- Android 笔记1
- android学习笔记1
- android 学习笔记1
- android学习笔记(1)
- Android学习笔记1
- android基础笔记1
- Android Activity 笔记 1
- Android笔记1
- C++学习笔记(面向对象化程序设计的类)
- oracle函数大全
- static 非法向前引用
- 重写的一个TextBox控件,控制只能输入小数点和数字
- Android 4.0小PC
- Android笔记1
- AIX下的sed介绍
- 如何查看sql2000 sp4是否安装成功 及sp4补丁安装
- 剑南春后院起火,华为前车之鉴
- 【Struct(结构体)杂谈之四】以空间换时间,Struct(结构体)中的成员对齐之道(上)
- J2EE J2SE J2ME SDK JDK JRE JVM 概念区分
- linux解决乱码问题
- •Portal应用点滴(三) —— Pluto与HelloWorld Portlet
- CoffeeScript入门实践