2013-02-25 49 views
1

在我的應用我在處理所有的請求,我的應用程序SharedPreferences類使用情況下,類的相關部分的構造:不同反應getApplicationContext()

private SharedPreferences preferences; 
public AppSettings(Context context){ 
    preferences = PreferenceManager.getDefaultSharedPreferences(context); 
} 

在我最初的活動我可以設置和就好使用類一些其他方法讀出的參數,我請使用getApplicationContext()上下文從doInBackground()呼叫延伸的AsyncTask一類內:

public class MyTask extends AsyncTask<Void, Void, Boolean> { 
    @Override 
    protected Boolean doInBackground(Void... params) { 
     ... 
     AppSettings as = new AppSettings(context); 
     ... 
    } 
} 

這一切正常,但是當我嘗試恢復在接下來的活動中設置:

public class MainActivity extends Activity 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     AppSettings as = AppSettings(getApplicationContext()); 
    } 
    ... 
} 

我得到在Eclipse中的錯誤,說:

方法的AppSettings(上下文)是未定義的類型MainActivity

我對getApplicationContext的理解是它應該給我應用程序的全局上下文,但顯然在每種情況下它都會返回不同的東西。我該如何解決這個問題?

回答

2

Errr ..你不是說

AppSettings as = new AppSettings(getApplicationContext()); //<-- missed the "new" 
+0

是啊,就是這樣。兩個小時的閱讀,看着它,錯過了......謝謝! – jankowiak 2013-02-25 18:39:48

+0

是的,碰巧人人:) – dmon 2013-02-25 18:50:33

相關問題