Android什么是上下文?

时间:2017-04-06 18:14:36

标签: android android-context

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

  detector = new GestureDetector(btn.getContext(), new GestureDetector.OnGestureListener(){};

3 个答案:

答案 0 :(得分:0)

  

有关应用程序环境的全局信息的接口。这是一个抽象类,其实现由Android系统提供。它允许访问特定于应用程序的资源和类,以及应用程序级操作的上调,例如启动活动,广播和接收意图等。

Source

答案 1 :(得分:0)

在您的方案中,GestureDetector需要Context Activity。您将MyCurrentActivity.this作为参考或button.getContext()传递,两个上下文都属于同一个Activity

您从Context获得的

button.getContext()最初是在视图夸大时设置的。

答案 2 :(得分:0)

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

  1. 应用程序上下文
  2. 活动/服务背景
  3. 广播接收器
  4. 内容提供商
  5. 这些Context类型中的每一个都有不同的职责和可用资源。因此,此处的上下文使用并不限制您可以触摸的位置,而是您可以使用UI。如果要限制手势检测器的工作位置,只需将检测器连接到视图即可。您仍然需要Activity上下文来创建检测器。

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

    https://possiblemobile.com/2013/06/context/