SharedPreferences не требуется создавать в onCreate () (если я вас правильно понял).
Вместо этого вам просто нужен контекст в месте, где вам нужно получить sharedprefs.Это может быть ваша активность или служба или просто другой класс, который будет действовать как обертка вокруг предпочтений и реализовывать некоторый интерфейс, как вы опубликовали.
Так что, если вы хотите создать такую обертку, возможно, более элегантное решениевместо того, чтобы наследовать от Activity что-то, что на самом деле не является действием, было бы создание класса с конструктором, принимающим Context.
Кроме того, этот класс может быть даже одноэлементным, который инициализируется с Context один раз при запуске приложения.Это можно сделать с помощью одного из действий приложения, или вы можете воспользоваться нечасто используемой способностью - иметь экземпляр android.app.Application.Укажите имя класса для вашего Приложения в AndroidManifest.xml следующим образом:
<application android:label="@string/app_name" android:name="com.yourpackage.YourApp" >
После этого создайте класс YourApp в соответствующем пакете, расширив android.app.Application.Этот класс может содержать только необходимый код для инициализации синглтон-оболочки настроек с таким контекстом:
public class YourApp extends Application {
public void onCreate() {
SharedPrefsWrapper.initialize(this);
}
}