Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
最后一次了解Android中的上下文是什么_Android - Fatal编程技术网

最后一次了解Android中的上下文是什么

最后一次了解Android中的上下文是什么,android,Android,这将是我最后一次尝试去理解上下文在Android中的含义,否则我将离开Android开发,因为我不明白为什么没有人能给出一个好的答案。我不想要Android文档的复制粘贴,这些文档告诉我这是一个访问资源的接口。我也会接受其他问题的链接,因为我已经阅读了所有问题,否则我就不会问了 正如文档所述,它是资源的接口 第一个问题 什么是语境?它是资源的接口,这意味着什么 第二个问题 为什么我们一直在传递这些信息,难道不是每个活动等都可以访问相同的资源吗 第三个问题 为什么在每一个该死的场景中都需要上下文?

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

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

第一个问题 什么是语境?它是资源的接口,这意味着什么

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

第三个问题
为什么在每一个该死的场景中都需要上下文?例如
Button myButton=新建按钮(此按钮)

第四个问题 还有一个问题是,为什么要将上下文传递给例如listadapters


感谢您的时间:)

上下文的概念在android中根深蒂固。简单来说,我的解释如下:

  • Android是一个多线程平台
  • 在一个UI线程中,用户看到的所有内容都被绘制出来,而在后台,可以有“n”个工作线程
  • 每个活动/服务都在自己的线程上运行
  • 每个活动都有一组本地布局/图像/mp3等
  • 每个活动在运行时都由其“上下文”标识。将其视为一个标识符。因此,您可能希望在该活动中执行的任何操作都应该在引用上下文的情况下执行
  • 希望这是对问题1、2、3、4的有利回答

    第一个问题什么是上下文?什么 这是否意味着它是一个接口 资源

    嗯。。我相信你明白它告诉你你到底在哪里。正如您所知,这个指针在Java中的概念与此相同。系统为每个应用程序提供一个上下文。需要提到的是,必须在这方面使用这些资源。所有这些都是因为Android是多线程的。这并不是说你进入了一个活动,你将只处理一个线程

    第二个问题为什么我们要通过这个 一直都在,不是吗 活动等有权访问相同的 资源

    当我们有一个类和一个内部类时,如果你在内部类中使用“this”,那么你的组件将接受内部类上下文而不是外部类上下文,即使你是指外部类。在这里,您必须通过说出您的外部类名来指定。也就是说,您明确指定要使用外部类上下文

    为什么每一部电影都需要背景 脚本例如
    按钮myButton=new
    按钮(此)

    现在,按钮和任何其他小部件都需要知道它们需要位于哪个视图上。因此,通过告诉上下文,您可以让小部件明白。假设我在一个java文件中有两个类,现在您使用一个按钮小部件。小部件如何确切地知道它要去哪里


    我希望你第四个问题的答案也是一样的

    上下文
    可视化为指向父对象的指针会有帮助吗

    因此,这就是为什么在您的示例中使用

    Button myButton = new Button ( this );
    
    按钮(和Android)需要知道它与哪个
    活动关联,以便正确管理资源(正如您自己所说的-不要忘记,它对Android和您或您的用户一样重要),并知道例如,何时触发
    onClick()
    。在不知道您的按钮存在于哪个
    上下文中的情况下,Android如何知道是否显示它?Android如何知道是否发送onClick()事件?这是因为它知道按钮的上下文

    如果您的按钮上下文与活动的上下文相同,则用户可以看到它,并且需要与不可见的对象进行不同的管理-例如,在内存不足的情况下,可见活动及其资源将是最后一个被杀死的对象

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


    上下文是资源的接口,但触摸屏是一种资源,内存是一种资源,CPU是一种资源——你对资源的构成考虑得太狭隘了(再说一次,它实际上只是语义);资源不仅仅是声音文件、图标或布局——还有Android管理的资源,它需要知道对象的
    上下文才能正确管理这些外部资源。

    上下文是向系统注册对象的一种方法,以便在系统想要响应对象时,它可以被唯一地识别。
    如果您没有向系统注册按钮,则侦听器将无法获得正确的事件,因此会造成混乱,使系统崩溃/变慢。

    谢谢!!最后一个家伙给出的答案让我明白了什么是上下文,谁不是那么多堆栈溢出的灌木丛。没问题——有时很容易被术语所迷惑,完全忽略了概念。我自己以前也试过解释上下文,但在今天提出这个解释之前,没有成功。我想我一直都是暗中建立联系或接受联系。在所有示例中,
    Context
    变量被称为
    Context
    ctxt
    而不是
    parent
    实际上我并不在乎,这并没有帮助。为了让我理解它,我不需要再链接到文档,然后我可以在人们回答之前用它来启发他们。你要评判谁?啊……没错,你是苏哈哈的又一个徽章/积分猎人。祝你今天愉快