Android中为什么Activity的this指针值为ActivityThread而不是类名

publicInputStreamgetFile()throwsIOException{InputStreamtxt=null;if(Environment.getExt... public InputStream getFile() throws IOException{
InputStream txt = null; if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { try { txt = new FileInputStream(Environment.getExternalStorageDirectory().getCanonicalPath() + FileName); } catch (FileNotFoundException e) { txt = getResources().openRawResource(R.raw.text); e.printStackTrace(); } catch (IOException e) { txt = getResources().openRawResource(R.raw.text); e.printStackTrace(); } } else { txt = getResources().openRawResource(R.raw.text); } Resources rs = this.getResources(); txt = rs.openRawResource(R.raw.text); return txt; }
这一段通过单步调试this值为ActivityThread (id=830007763072)
但其它类里的this值就为类名
展开
 我来答
百度网友1a235aba15
2015-07-20 · 超过80用户采纳过TA的回答
知道小有建树答主
回答量:147
采纳率:0%
帮助的人:123万
展开全部
因为实现机制就是这样的,看下底层实现的话就会知道了。
我也是做app的,但是现在在做framework层,就必须了解底层实现,每个activity都是运行于一个ActivityThread中的,ActivityThread又叫主线程或者ui线程,相当于一个程序的main()函数入口,主要处理界面的相关事件以及广播等,然后实现了IApplicationThread接口,实现调度avtivities和broadcast等。默认情况下,所有activity和service等都运行于这个主线程中,也正式因为这样,所以为了避免anr常常要开启线程来进行任务。
bd9006
2012-06-29 · TA获得超过2.5万个赞
知道大有可为答主
回答量:4.8万
采纳率:63%
帮助的人:1.6亿
展开全部
在子类、还是在内部类中呢
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式