在Android编程中,Context类到底是什么?它用于什么?
我在开发者网站上读过这篇文章,但我无法清楚地理解它。
在Android编程中,Context类到底是什么?它用于什么?
我在开发者网站上读过这篇文章,但我无法清楚地理解它。
当前回答
只是把它放在那里给新手;
因此,首先了解单词上下文:
在英语库中。这意味着:
“构成事件、语句或这是一个可以充分理解和评估的概念。"“紧接在和之前的书面或口头的部分跟随一个单词或一段话,并阐明其含义。"
现在对编程世界有同样的理解:
应用程序/对象当前状态的上下文。它让新创建的对象了解发生了什么。通常,您调用它来获取有关程序的另一部分(活动、包/应用程序)的信息
您可以通过调用getApplicationContext()、getContext()和getBaseContext()或this(在活动类中)来获取上下文。
要在应用程序中获取上下文Anywhere,请使用以下代码:
在android应用程序中创建新类AppContext
public class AppContext extends Application {
private static Context context;
public void onCreate(){
super.onCreate();
AppContext.context = getApplicationContext();
}
public static Context getAppContext() {
return AppContext.context;
}
}
现在,每当您希望在非活动类中使用应用程序上下文时,都可以调用此方法,这样您就有了应用程序上下文。
希望这有帮助;)
其他回答
上下文表示获取环境数据的句柄。上下文类本身声明为抽象类,其实现由android OS提供。上下文就像电视的远程&电视中的频道是资源、服务等。
你能用它做什么?
正在加载资源。启动新活动。创建视图。正在获取系统服务。
获取上下文的方法:
getApplicationContext()获取上下文()getBaseContext()
语境到底是什么?
根据Android参考文档,它是一个表示各种环境数据的实体。它提供对本地文件、数据库、与环境相关的类加载器、服务(包括系统级服务)等的访问。在这本书中,以及在您使用Android进行的日常编码中,您将看到上下文频繁传递。
摘自《实践中的Android》一书,第60页。
几个Android API需要Context作为参数
如果您查看各种Android API注意,其中许多都将android.content.Context对象作为参数您还将看到“活动”或“服务”通常用作上下文这是因为这两个类都是从Context扩展的。
上下文基本上用于资源访问和获取应用程序(用于应用程序上下文)或活动(用于活动上下文)或任何其他的环境详细信息。。。
为了避免内存泄漏,您应该为每个需要上下文对象的组件使用应用程序上下文。。。。有关详细信息,请单击此处
如果您想将Context与Android中其他熟悉的类连接,请记住以下结构:
Context<ContextWrapper<应用程序Context<ContextWrapper<ContextThemeWrapper<活动Context<ContextWrapper<ContextThemeWrapper<活动<列表活动Context<ContextWrapper<ServiceContext<ContextWrapper<Service<IntentService
所以,所有这些类都是以自己的方式存在的上下文。如果愿意,可以将Service和ListActivity转换为Context。但如果仔细观察,一些类也会继承主题。在活动或片段中,您希望将主题化应用于视图,但不关心它,例如Service类。
我在这里解释上下文的差异。
老板助理类比
在深入研究Context的技术性之前,让我们先做一个小类比
每个老板都有一个助手或一个办事少的人(跑腿)对他来说,重要而耗时的事情。例如,如果需要一份文件或咖啡,那么助手就可以跑了。老板不会知道后台正在发生什么,但文件或任务将生产所以在这里Boss-Android应用程序助手-上下文文件或咖啡杯-资源
Android开发者官方网站对Context的描述
上下文是应用程序相关资源的访问点
让我们看看这些资源或任务
启动活动。获取文件系统上特定于应用程序的缓存目录的绝对路径。确定系统中运行的特定进程和用户ID是否允许给定权限。检查是否已授予您特定权限。
等等因此,如果一个Android应用程序想要启动一个活动,它将直接转到Context(访问点),Context类将资源返回给他(在本例中为Intent)。
与任何其他类一样,Context类具有字段和方法。您可以在官方文档中探索更多关于Context的内容,它几乎涵盖了所有内容、可用的方法、字段,甚至包括如何将字段与方法一起使用。