Kotlin 中对象字段中具有上下文的 Android 类

2024-03-05

Kotlin 中的对象类中是否可以有一个具有上下文的属性?在 Android 中,将上下文相关对象放入静态字段中是一种不好的做法。 Android studio 甚至会突出显示它并发出警告,这与 Kotlin 不同,Kotlin 没有警告。 示例对象:

object Example {
    lateinit var context: Context

    fun doStuff(){
        //..work with context
    }
}

Since objects 是单例,它们有一个静态实例。所以如果你给他们一个context属性,您仍在存储Context以静态的方式。

这将产生与放置完全相同的结果Context在Java中的静态字段中。


如果您编写 Kotlin 生成的等效代码object在 Java 中,它实际上会导致正确的 lint 错误:

public class Example {

    // Do not place Android context classes in static fields; this is a memory leak 
    // (and also breaks Instant Run)
    public static Context context;

    // Do not place Android context classes in static fields (static reference to 
    // Example which has field context pointing to Context); this is a memory leak 
    // (and also breaks Instant Run)
    public static Example INSTANCE;

    private Example() { INSTANCE = this; }

    static { new Example(); }

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kotlin 中对象字段中具有上下文的 Android 类 的相关文章

  • 定期更新 SWT 会导致 GUI 冻结

    Problem 当 GUI 字段定期更新时 SWT 会冻结 我想要一个基于 SWT 的 GUI 其中文本字段的值会定期递增 最初我从单独的线程访问 textField 导致抛出异常 线程 Thread 0 org eclipse swt S
  • 有多少种方法可以将位图转换为字符串,反之亦然?

    在我的应用程序中 我想以字符串的形式将位图图像发送到服务器 我想知道有多少种方法可以将位图转换为字符串 现在我使用 Base64 格式进行编码和解码 它需要更多的内存 是否有其他可能性以不同的方式做同样的事情 从而消耗更少的内存 现在我正在
  • JFace ColumnWeigthData 导致父级增长

    我有一个 Eclipse RCP 应用程序 并且想要在TableViewer using ColumnWeigthData as ColumnLayoutData 问题是父表单 ScrolledForm在示例代码中 每当我布局表格时都会增加
  • 如何在 Eclipse 中使用其他外部 jar 依赖项创建不可运行/不可执行的 jar

    我无法通过 Eclipse 导出向导创建普通的 jar 不可运行 不可执行 它仅创建 jar 文件 但不会导出依赖的 jar 从而在从其他类调用导出的 jar 的方法时出现错误 请帮助 非常感谢 kurellajunior的建议 它是通过使
  • android textview 有字符限制吗?

    我正在尝试在 android TextView 中输入超过 2000 3000 个字符 它不显示任何内容 任何一份指南是否对 android textview 有字符限制或什么 我在G3中做了一些小测试 我发现 如果activtiy布局中有
  • 从 @JsonProperty 值获取枚举常量

    我有一个标有 JsonProperty 的枚举 用于使用 Jackson 进行 JSON 序列化 反序列化 并且希望获取给定字符串 JsonProperty 的枚举值 public enum TimeBucket JsonProperty
  • 异步迭代器

    我有以下代码 while slowIterator hasNext performLengthTask slowIterator next 由于迭代器和任务都很慢 因此将它们放入单独的线程中是有意义的 这是对迭代器包装器的快速而肮脏的尝试
  • Java:java.util.ConcurrentModificationException

    我正在制作 2D 目前正在研究用子弹射击 子弹是一个单独的类 所有项目符号都存储在称为项目符号的数组列表中 当它超出屏幕一侧 Exception in thread main java util ConcurrentModification
  • 带有 OpenId 提供程序的 Java Spring 安全性

    我有一个 spring MVC 应用程序 另一个客户端应用程序想要使用 open id connect 访问我的 spring 应用程序 如何在服务器端实现开放ID提供商 请帮忙 MITREid 连接 OpenID Connect Java
  • Android Root 执行 su 带参数

    我在使用参数执行 su 时遇到问题 包含空格 我的 Command java 看起来像这样 public class Command Process process public String executeCommand String c
  • 改变for循环的顺序?

    我遇到一种情况 我需要根据用户输入以不同的顺序循环遍历 xyz 坐标 所以我是 3D 空间中的一个区域 然后是一组像这样的 for 循环 for int x 0 x lt build getWidth x for int y 0 y lt
  • 剪切评级栏中的图像

    我制作了自己的评级栏 花朵图像有 4 种尺寸 xdpi hdpi 等 从 24px24px 到 64x64px
  • JavaFX - 为什么多次将节点添加到窗格或不同的窗格会导致错误?

    我现在正在学习基本的 JavaFX 我不明白我正在阅读的书中的这一说法 不 诸如文本字段之类的节点只能添加到一个窗格中一次 将节点添加到多次窗格或不同的窗格将导致运行时错误 我可以从书中提供的UML图看出它是一个组合 但我不明白为什么 库类
  • 在android中创建SQLite数据库

    我想在我的应用程序中创建一个 SQLite 数据库 其中包含三个表 我将向表中添加数据并稍后使用它们 但我喜欢保留数据库 就好像第一次安装应用程序时它会检查数据库是否存在 如果存在则更新它 否则如果不存在则创建一个新数据库 此外 我正在制作
  • Android AdMob:addView 在返回活动之前不会显示广告

    我正在尝试在游戏顶部添加横幅广告 我的活动使用带有自定义 SurfaceView 的relativelayout 我希望广告与 SurfaceView 重叠 广告会加载并可点击 但不会绘制到屏幕上 当我离开活动并返回时 会绘制广告 例如 通
  • 警告:无法更改每个人的权限:

    当运行 Java 快速入门示例时https developers google com drive web quickstart java hl hu https developers google com drive web quicks
  • 如何解决 PDFBox 没有 unicode 映射错误?

    我有一个现有的 PDF 文件 我想使用 python 脚本将其转换为 Excel 文件 目前正在使用PDFBox 但是存在多个类似以下错误 org apache pdfbox pdmodel font PDType0Font toUnico
  • Fragment 生命周期和在不存在的 Fragment 上调用 onCreate 的问题

    我正在 Android 中测试片段 并且片段生命周期有一些令人困惑的行为 我有一个活动 在横向和纵向模式下使用 xml 布局 我有一些代码可以访问在片段布局之一中定义的 EditText 对象 如果我以横向模式启动应用程序 一切都会正常 我
  • Java:使用 Graph API 在线更新 Sharepoint 上的 docx 文件

    我在使用 Java 在线更新 Sharepoint 上的 docx 文件时遇到问题 首先 我检查了构建 PUT 请求的 URL 此处 并使用此请求 PUT drives drive id items item id content 我首先使
  • 如何捕获 try-with-resource 语句中 close 方法抛出的异常

    我正在读关于try with resourceJava 中的语句可用于指定任意数量的资源 try Resource1 res1 initialize code Resource1 res2 initialize code statement

随机推荐

  • TSLint 错误:: 节点解释器路径不正确。请检查口译员设置

    我是 Angular 的新手 很想知道错误是什么 如何解决呢 我正在使用网络风暴 IDE 这就是我在 Intellij 中摆脱这个警告的方法 改变这个 to this
  • Sagemaker:如何在 Predictor 中设置 content_type(Sagemake > 2.0)?

    请求帮助解决以下错误 调用 InvokeEndpoint 时发生错误 ModelError 操作 从模型收到客户端错误 415 和消息 不支持内容类型应用程序 八位字节流 支持 内容类型是文本 csv 文本 libsvm 这是相关代码 fr
  • 箭头函数“预期表达式”语法错误

    我想改造这段代码 var formatQuoteAmount function tx return Currency toSmallestSubunit tx usd USD var quoteAmounts res transaction
  • 如何在列表上触发 Traits 静态事件通知?

    我正在通过traits https github com enthought traits PyCon 2010 的演示 http python mirocommunity org video 1690 pycon 2010 introdu
  • 将数据帧写入 csv 文件,其中 NA 值为空白

    有一个dataframe named cnbd 例如 cnbd data frame 1 2 3 NA NA 5 因此表达式 dim cnbd 1 give 1 我想写一个像这样的数据框cnbd到 csv write file filena
  • React 路由器:在每个 导航上执行自定义函数

    抱歉 如果这个问题已经得到回答 但是有没有一种方法可以在每个导航 最好不创建自定义包装纸 我想在应用程序内的每次导航之前将一些信息放入 sessionStorage 中 Thanks 您可以使用onClick执行任何操作 例如 gt con
  • Django 1.3 中链接静态文件的问题

    我在 Windows XP 上运行 django 1 3 python 2 7 我正在尝试在我的 django 应用程序的静态文件夹中设置 css 模板如下所示 生成的 HTML 如下所示
  • 正则表达式排除 [ 除非前面有 \

    如何编写一个正则表达式来接受包含任意数量的除 之外的任何字符的表达式 除非 前面是 例子 this is text this also this isn t any more 从上面的文字来看 this is text this also
  • @Html.DropDownList 宽度

    问 如何设置 Html DropDownList 的宽度 而不是在 css 中 Html DropDownList ListId String Empty new style width 250px no go 该的第二个论点下拉列表 ht
  • 与有向边的最大加权二分匹配

    我知道计算最大加权匹配的各种算法加权 无向二分图 即分配问题 例如 匈牙利算法 贝尔曼 福特算法甚至 Blossom 算法 适用于一般图 即非二分图 但是 如果二分图的边是 如何计算最大加权匹配加权和定向 我希望能够提供具有多项式复杂度的算
  • java中的equals方法

    我读过有关equals java中的方法 我听说它只是根据价值进行比较 但是为什么在下面的情况下它返回 false 其中值相同但类型不同 public class test public static void main String ar
  • Coq :> 符号

    这可能是非常微不足道的 但我找不到任何关于 gt 符号在 Coq 中含义的信息 有什么区别 U 类型 和 W gt 类型 这取决于符号出现的位置 例如 如果它位于记录声明内 它会指示 Coq 添加相应的记录投影作为强制 具体来说 假设我们有
  • 如何在打字稿中使用不同类型的通用键输入对象

    您将如何在打字稿中输入这些对象 我有一个特殊的 日期时间 键 即日期 其余键是数字 但我事先并不知道每个对象上将设置哪些键 示例值 type Metrics const example1 Metrics datetime new Date
  • Facebook FB.login 在 Safari 中有效,但在移动 Safari 中无效

    以下 FB Login 函数在桌面 Chrome FF 和 Safari 中运行良好 但在移动 Safari 中 在 iPhone 4S 上测试 它挂起并且不会返回 FB login 回调 当我使用 Safari 并将用户代理设置为 Saf
  • 检查是否有节点但没有文本

    我有以下 xml 片段 Case1
  • CSS菜单IE7问题

    菜单适用于所有主要浏览器 但在 IE7 中看起来有所不同 请参阅下面的屏幕截图 查看演示 http jsfiddle net FQLdm 6 http jsfiddle net FQLdm 6 当您将鼠标悬停在主页链接上时 您将看到一个子菜
  • 如何在 intelliJ-idea 中最好地调试 solr?

    如何在 intelliJ idea 中最好地调试 solr 哪条路容易 当向 solr 发布查询时 我想处理这个问题 您可以设置远程调试 在里面运行 调试配置 然后当使用默认的jetty 这个处于多核模式 启动solr时 传入 java a
  • 按第一个字母对字符串数组进行分组

    我面临这个挑战 其中包括 编写一个以字符串数组作为参数的函数 然后 按第一个字母对数组中的字符串进行分组 返回一个对象 其中包含带有代表第一个字母的键的属性 例如 应该返回 groupIt hola adios chao hemos acc
  • Android - EBADF(错误文件号)OnClickInfoMarker

    我搜索过相关问题但没有找到 我创建了一个显示图片 名称和地址的 InfoWindowMarker 然后我创建 OnInfoWindowClickListener 将显示所选标记的纬度和经度 但是当我单击信息窗口时 我收到此错误消息 Logc
  • Kotlin 中对象字段中具有上下文的 Android 类

    Kotlin 中的对象类中是否可以有一个具有上下文的属性 在 Android 中 将上下文相关对象放入静态字段中是一种不好的做法 Android studio 甚至会突出显示它并发出警告 这与 Kotlin 不同 Kotlin 没有警告 示