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
需要 Context
或 Activity
。要么传递MyCurrentActivity.this
作为参考,要么传递button.getContext()
,这两个上下文都属于同一个Activity
。
您从button.getContext()
获得的Context
最初是在视图膨胀时设置的。
【讨论】:
【参考方案3】:上下文基本上是对应用程序资源的访问。当您获得按钮的上下文时,您实际上获得的是对按钮所在活动的上下文的引用,而不是按钮本身。 Android中有4种Context
:
-
应用程序上下文
活动/服务上下文
广播接收器
内容提供者
每种上下文类型都有不同的职责和可用资源。所以这里的上下文使用不是限制你可以触摸的地方,而是你可以使用 UI。如果您想限制手势检测器的工作位置,您只需将检测器附加到视图即可。不过,您仍然需要 Activity 上下文来创建检测器。
我发现这篇关于不同上下文类型的文章非常有帮助:
https://possiblemobile.com/2013/06/context/
【讨论】:
以上是关于Android 啥是上下文? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
在 Ruby on Rails 的上下文中引用时,啥是中间件?
在 Microsoft SQL Server 和 Python 的 SQLAlchemy 和 pyodbc 的上下文中,啥是“用户事务”?