我正在使用Kotlin进行Android开发。有趣的问题。在Java中,在静态字段中保存上下文是内存泄漏。但是,如果我将上下文存储在Kotlin随播对象中,则Android Studio不会说这是内存泄漏。这意味着在Java字节码中,同伴对象不是静态代码吗? 例如:
library(stringr)
df$Total=rowSums(df[,names(df)[str_detect(names(df),'times')]])
df
id amount zipcode cat1 cat1_times cat2 cat2_times Total
1 1 1000 1001 0 0 1 7 7
2 2 2000 1001 0 0 1 7 7
3 3 2300 1002 1 6 1 5 11
4 4 1500 1002 1 6 1 5 11
5 5 2700 1003 1 3 1 5 8
6 6 3400 1003 1 3 1 5 8
这里没有内存泄漏吗?感谢您的回答:)
答案 0 :(得分:1)
实际上,您的代码确实以静态方式存储Context
,只是因为某些原因,皮棉无法捡起并警告您。
但是,在这种特定情况下,您实际上没有造成内存泄漏的风险。您将静态地Application
对象本身进行存储,就像静态变量一样,该对象在整个应用程序生命周期中都将保持活动状态。如果这是其他一些寿命较短的Context
,则可能会遇到麻烦,但是应用程序Context
应该没问题。
有关这样做是否安全的参考: