最后一个镜头是不知道Android中的上下文

use*_*912 2 android

这将是我最后一次尝试了解Android中的上下文含义,否则我将离开Android开发,因为我不明白为什么没人能给出一个好的答案.我不想从Android文档中复制粘贴,告诉我它是一个访问资源的界面.我要么接受其他问题的链接,因为我已经阅读了所有问题,否则我不会问.

正如文档所述,它是资源的接口.

第一个问题 什么是背景?它是资源的接口是什么意思?

第二个问题 为什么我们一直传递这个问题,不是每个活动等都可以访问相同的资源吗?

第三个问题
为什么每个friggin场景都需要上下文?如Button myButton = new Button(this);

第四个问题 关于为什么上下文传递给例如listadapters的另一个问题?

感谢您的时间:)

Riv*_*Kid 7

它会帮助您将a可视Context化为指向父对象的指针吗?

所以,这就是为什么在你的例子中你创建一个Buttonwith

Button myButton = new Button ( this );
Run Code Online (Sandbox Code Playgroud)

按钮(和Android)需要知道Activity它与哪个相关联才能正确管理资源(正如你自己所说的那样 - 不要忘记,它适用于Android,就像你或你的用户一样)并且知道例如,什么时候触发你的onClick().在不知道Context您的按钮存在的情况下,Android如何知道是否显示它?Android如何知道是否发送onClick()事件?这是因为它知道按钮的上下文.

如果您的按钮上下文与活动的Activity相同,那么它对用户可见,并且需要以不同的方式管理到不可见的对象 - 例如,可见的Activity及其资源将是最后被杀死的对象.内存不足的情况.

这与其他操作系统和图形工具包没有什么不同,它只是不同的术语.

Context 资源的接口,但是触摸屏是资源,内存是资源,CPU是资源 - 你对资源的构成过于狭隘(同样,它实际上只是语义); 资源不仅仅是声音文件,图标或布局 - 还有Android管理的资源,它需要知道Context您的对象才能正确管理这些外部资源.