Android 啥是上下文? [复制]

Posted

技术标签:

【中文标题】Android 啥是上下文? [复制]【英文标题】:Android What is context? [duplicate]Android 什么是上下文? [复制] 【发布时间】:2017-09-01 22:28:17 【问题描述】:

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

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

【问题讨论】:

非常简单,您可以说Context 是指向执行代码的进程的链接。根据这些信息,可以得出更多信息,包括内部资源的 APK 等等。 【参考方案1】:

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

Source

【讨论】:

【参考方案2】:

在您的场景中,GestureDetector 需要 ContextActivity。要么传递MyCurrentActivity.this 作为参考,要么传递button.getContext(),这两个上下文都属于同一个Activity

您从button.getContext() 获得的Context 最初是在视图膨胀时设置的。

【讨论】:

【参考方案3】:

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

    应用程序上下文 活动/服务上下文 广播接收器 内容提供者

每种上下文类型都有不同的职责和可用资源。所以这里的上下文使用不是限制你可以触摸的地方,而是你可以使用 UI。如果您想限制手势检测器的工作位置,您只需将检测器附加到视图即可。不过,您仍然需要 Activity 上下文来创建检测器。

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

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

【讨论】:

以上是关于Android 啥是上下文? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在嵌入式系统的上下文中,啥是外围锁定?

在 Ruby on Rails 的上下文中引用时,啥是中间件?

Android中的“上下文”是啥意思? [复制]

在 Microsoft SQL Server 和 Python 的 SQLAlchemy 和 pyodbc 的上下文中,啥是“用户事务”?

图像处理:啥是遮挡?

如何从任何地方获取上下文? [复制]