Android:为什么要用getBaseContext()方法代替this?
来源:互联网 发布:优衣库销售数据 编辑:程序博客网 时间:2024/05/22 13:14
this常常引用当前的 context。但是有些时候,必须使用
为什么这种情况下必须使用
getBaseContext()
来代替this
。就是说使用this
会引发错误。如下面的例子:
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 }}当我把
getBaseContext()
变成this
就会有错误。为什么这种情况下必须使用
getBaseContext()
方法,而不能使用this
呢?回答:
1.getApplicationContext ()
方法在应用程序要被摧毁时,返回整个应用程序生命周期的应用上下文。
2.this
应用上下文返回activity的当前上下文,属于activity。当它被摧毁时,activity也被摧毁。但是在你的事例中它是指Spinner实例,因为我们在onItemSelected(AdapterView<?>arg0, View arg1, int arg2, long arg3)
方法中使用它。这个方法是来自Spinner类,而Spinner从AdapterView.OnItemSelectedListener
接口中继承这个方法。
3.getBaseContext()
是 ContextWrapper
中的方法。
- 为什么要用getBaseContext()方法代替this
- 为什么要用getBaseContext()方法代替this
- Android:为什么要用getBaseContext()方法代替this?
- Android:getApplicationContext()、Activity.this、 getBaseContext()区别
- android getContext() , getApplicationContext() , getBaseContext() and “this”
- Android中Activity.this,getApplicationContext(),getBaseContext()和this详解
- Android中Activity.this,getApplicationContext(),getBaseContext()和this详解
- Android中Activity.this,getApplicationContext(),getBaseContext()和this详解
- Android中Activity.this,getApplicationContext(),getBaseContext()和this详解
- Android中Activity.this,getApplicationContext(),getBaseContext()和this详解
- 【android】关于getBaseContext();this等-----项目中遇到的问题
- Android 中 getApplicationContext()、this、getBaseContext()之间的区别
- android中getApplicationContext()、this、getApplication()、getBaseContext之间的区别
- Android 中几个Context的区别,getApplicationContext(),Activity.this,getBaseContext()
- Android 中this、getContext()、getApplicationContext()、getApplication()、getBaseContext() 之间的区别
- 为什么用annotationProcessor代替android-apt?
- getApplicationContext()、Activity.this、 getBaseContext区别
- getApplicationContext()、getBaseContext()、this的区别
- ps tty含义
- vc文件复制和删除及移动和重命名
- document.all 与 document.getElementById不同吗?
- Linux与Linux、window之间的文件共享
- hdu 1398 母函数初学
- Android:为什么要用getBaseContext()方法代替this?
- 笔记之tomcat映射虚拟路径
- Python常用模块资料
- LDAP介绍
- Unity3D--Delegate和SendMessage的性能差测试,以及Delegate在多线程使用要注意的小问题
- JVM最大线程数计算方法
- 笔记之java mail
- Linux如何制作一个简单的共享服务器
- Linux strip命令的用法