为什么要用getBaseContext()方法代替this
2015-10-21 14:18
423 查看
如下面的例子
1.
2.
因为我们在o
3.
简单的解释:
getApplicationContext() 返回应用的上下文,生命周期是整个应用,应用摧毁它才摧毁
Activity.this的context 返回当前activity的上下文,属于activity ,activity 摧毁他就摧毁
getBaseContext() 返回由构造函数指定或setBaseContext()设置的上下文
本文综合网上的内容
Spinner spinner = (Spinner) findViewById(R.id.spinner); spinner.setAdapter(adapter); spinner.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?>arg0, View arg1, int arg2, long arg3){ Toast.makeText(getBaseContext(),"SELECTED", Toast.LENGTH_SHORT).show(); //this line }
1.
getApplicationContext ()方法在应用程序要被摧毁时,返回整个应用程序生命周期的应用上下文。
2.
this应用上下文返回activity的当前上下文,属于activity。当它被摧毁时,activity也被摧毁。但是在你的事例中它是指Spinner实例,
因为我们在o
nItemSelected(AdapterView<?>arg0, View arg1, int arg2, long arg3)方法中使用它。这个方法是来自Spinner类,而Spinner从
AdapterView.OnItemSelectedListener接口中继承这个方法。
3.
getBaseContext()是
ContextWrapper中的方法。
简单的解释:
getApplicationContext() 返回应用的上下文,生命周期是整个应用,应用摧毁它才摧毁
Activity.this的context 返回当前activity的上下文,属于activity ,activity 摧毁他就摧毁
getBaseContext() 返回由构造函数指定或setBaseContext()设置的上下文
本文综合网上的内容
相关文章推荐
- google protocol buffer -2-.proto 定义规则
- 排序检索数据
- java 使用SpringMVC上传图片
- JDBC连接Oracle数据库
- java.lang.NumberFormatException at java.math.BigDecimal.<init>
- c# 判断点是否在区域内 点在区域内 在多边形内 判断
- Fragment和Activity
- iOS @2x 与@3x 图的详解
- Java Best Practices
- java web 监听器详解
- 数据库基础知识
- 原型模式(Prototype)
- burp
- 1002. 写出这个数 (20)
- Android_07_自定义广播
- 回归诊断
- 订单系统里有哪几种请求参数?
- AutoMapper 复杂类型间的自己定义相互匹配
- 动态规划入门篇
- 字符串对齐