Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.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_Android Context - Fatal编程技术网

Android 什么是上下文?

Android 什么是上下文?,android,android-context,Android,Android Context,所以我开始学习手势,一切正常,然后我将这个(活动上下文)更改为活动中的一个按钮(button.getContext())。我想它只会在按钮中捕捉事件,但它会像以前一样在所有屏幕视图中捕捉事件。你们能解释一下为什么我只知道上下文就像是一个物体或活动的状态,谢谢你们的时间 detector = new GestureDetector(btn.getContext(), new GestureDetector.OnGestureListener(){}; 与有关应用程序环境的全局信息的接口。这是

所以我开始学习手势,一切正常,然后我将这个(活动上下文)更改为活动中的一个按钮(button.getContext())。我想它只会在按钮中捕捉事件,但它会像以前一样在所有屏幕视图中捕捉事件。你们能解释一下为什么我只知道上下文就像是一个物体或活动的状态,谢谢你们的时间

  detector = new GestureDetector(btn.getContext(), new GestureDetector.OnGestureListener(){};
与有关应用程序环境的全局信息的接口。这是一个抽象类,其实现由Android系统提供。它允许访问特定于应用程序的资源和类,以及调用应用程序级操作,如启动活动、广播和接收意图等


在您的场景中,
手势检测器
需要
活动的
上下文
。要么传递
MyCurrentActivity.this
作为参考,要么传递
按钮.getContext()
,这两个上下文属于同一个
活动


Context
是从
按钮获取的。getContext()
最初是在视图膨胀时设置的。

上下文基本上是对应用程序资源的访问。当您获得按钮的上下文时,您实际上得到的是对按钮所在活动上下文的引用,而不是按钮本身。Android中有4种类型的
Context

  • 应用程序上下文
  • 活动/服务上下文
  • 广播接收机
  • 内容提供商
  • 每种上下文类型都有不同的职责和可用资源。因此,这里的上下文用法不是限制您可以触摸的位置,而是限制您可以使用UI。如果要限制手势检测器的工作位置,只需将检测器附加到视图。不过,您仍然需要活动上下文来创建检测器

    我发现这篇关于不同上下文类型的文章非常有用:


    非常简单您可以说
    上下文是执行代码的流程的链接。基于这些信息,可以导出更多的信息,包括APK及其内部资源以及更多信息。