在Android编程中,Context类到底是什么?它的用途是什么?

我在developer site号公路上读到过,但我不太明白.

推荐答案

简单来说,就是:

顾名思义,它是应用程序/对象当前状态的上下文.它让新创建的对象了解正在发生的事情.通常,您调用它来获取有关程序的另一部分(活动和包/应用程序)的信息.

您可以通过调用getApplicationContext()getContext()getBaseContext()this(在从Context扩展的类中,例如应用程序、活动、服务和IntentService类)来获取上下文.

语境的典型用法:

  • Creating new objects: 创建新视图、适配器、监听程序:

     TextView tv = new TextView(getContext());
     ListAdapter adapter = new SimpleCursorAdapter(getApplicationContext(), ...);
    
  • Accessing standard common resources:

     context.getSystemService(LAYOUT_INFLATER_SERVICE)
     getApplicationContext().getSharedPreferences(*name*, *mode*);
    
  • Accessing components implicitly: 关于内容Provider 、广播、意图

     getApplicationContext().getContentResolver().query(uri, ...);
    

Android相关问答推荐

如果在Kotlin中,如何避免使用过多?

如何正确增加LazyStream中的变量

更新画布上的绘图以具有水平填充

Jetpack Compose中的导航找不到NavHost类的名称为:startDestination";的参数

如何go 除回调流中不可用的状态?

图像在Android Studio中显示,但不在设备中显示

对支持哪些数据存储区方法感到困惑

在Android Studio中,如何在BuildSrc Dependenices Kotlin文件中指定时标记与旧版本的依赖关系

如何将两个变量传递给Nav主机,然后将其传递给另一个屏幕?

尽管我们不再使用GCM SDK,但应用程序已被标记为使用GCM SDK

我无法在底部导航栏中正确导航-Android底部导航视图

我们可以使用KSP读取类中变量的值吗?

Clean MVVM 架构中的 API 响应处理

@Immutable 对数据类有什么好处?

Kotlin 协程、 retrofit 、android

如何在 Jetpack Compose 中的特定位置绘制图像

在 Jetpack Compose 中包装内容

Int 传递给 Intent 但Android工作室说我传递了一个字符串

不能在kotlin的lazycolumn中使用列表

操作系统会终止已启动的服务并调用Service.onDestroy吗?