扩展PackageManager实现SharedPreferences

时间:2014-12-05 10:23:37

标签: android interface sharedpreferences

我需要从平面Java类(无活动)访问PackageManager和SharedPreferences。

我尝试扩展Class PackageManager并实现接口SharedPreferences,如下所示:

public abstract class TestClass extends PackageManager implements SharedPreferences {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    Do code here

}

现在我的班级不是像sharedPreferences吗? 现在我不需要创建类SharedPreferences的新对象?可是等等。我正在实现一个接口而不是一个类?我真的可以创建一个接口实例吗?我不这么认为。我认为整个界面故事对我来说是一个真正的大问题。

如何在普通班级中访问SharedPreferences?

public abstract class TestClass extends PackageManager implements SharedPreferences {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    this.getSharedPreferences(...); // Doesn't work
}

我做错了什么,它是如何运作的?如果有人能用简单的语言解释我的问题,那将是非常好的。在此先感谢:)

更新

我没有访问活动上下文!对不起,忘了说。在我的一个活动被创建之前很久就从我的appWidget调用了飞机Java类。

1 个答案:

答案 0 :(得分:1)

如果您希望在非活动类中使用SharedPreferences,则可以使用Context。

像:

public class MyClass{
    public MyClass(Context context){
        SharedPreferences sPrefs = context.getSharedPreferences("MyPrefs", null);
    }
}

您不需要延长PackageManager,实施SharedPreferences等。

您还可以使用上下文访问PackageManager

context.getPackageManager();

当你创建这个类的对象时,你需要传递像:

这样的上下文
MyClass myClass = new MyClass(this);

希望这有帮助。