'getSharedPreferences' Kotlin 中不创建 ContextWrapper 实例而调用的方法的原因是什么?



我写了如下代码,

val preference by lazy {
getSharedPreferences("PreExActivity", Context.MODE_PRIVATE)
}

并想知道"getSharedPredferences"方法的根源。

所以我找到了API..

public class ContextWrapper extends Context {
@Override
public SharedPreferences getSharedPreferences(String name, int mode) {
return mBase.getSharedPreferences(name, mode);
}
}

使用我在第一个代码中编写的getSharedPreferences方法是否正确?

我认为。。

ContextWrapper().getSharedPreferences("PreExActivity", Context.MODE_PRIVATE)

是使用该方法的方法。

怎么可能?

所以你从你的AppCompatActivity调用getSharedPreferences方法。 这是完全正确的。

AppCompatActivity扩展FragmentActivityComponentActivity扩展,Activity扩展ContextThemeWrapperContextWrapper扩展ContextContext是一个实际定义getSharedPreferences方法的abstract类。

使用Activity调用getSharedPreferences(String name, int mode)方法实际上是调用ContextWrappergetSharedPreferences(String name, int mode),因为Activity继承了它。

相关内容

  • 没有找到相关文章

最新更新