为什么 SharedPreferences 可以直接 调用,前面却没有对象
获取SharedPreferences的两种方式:
1 调用Context对象的getSharedPreferences()方法
2 调用Activity对象的getPreferences()方法
两种方式的区别:
调用Context对象的getSharedPreferences()方法获得的SharedPreferences对象可以被同一应用程序下的其他组件共享.
调用Activity对象的getPreferences()方法获得的SharedPreferences对象只能在该Activity中使用.
- public class MainActivity extends Activity {
- PopupWindow popupWindow;
- View parent;
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- //第一种 通过 context调用 getApplicationContext().getSharedPreferences(name, mode)
- //第er种 通过 activity调用 this.getSharedPreferences(name, mode) , this 代表当前对象mainactivity, 可以省略 也就是 写成 getSharedPreferences(name, mode)
- }
我的问题是
我查到 getSharedPreferences 是contextwrapper 类的 方法。mainactivity 虽然继承自 activity 继承自contextwrapper 。
但是方法一定要对象调用才可以啊。
其实 是 java基础没有掌握牢固
所以 maiactivity 继承自 contextwrapper。
contextwrapper 内 有 getsharedpreference
所以 相当于mainactivity 内部有 这个方法。
所以 在 mainactivity 内部的 oncreat()方法 调用时候 是可以 直接调用 。而可以省略this的