2015-09-13 10 views
6

私はインターセプタ上にある間にSharedPreferencesにいくつかのものを保存したいと思います。 インターセプタ上のコンテキストにアクセスする方法が見つからないため、方法を見つけることができません(PreferencesManagerなどは使用できません)。インターセプタのコンテキストにアクセスする方法は?

public class CookieInterceptor implements Interceptor { 

@Override public Response intercept(Chain chain) throws IOException { 

    PreferenceManager.getDefaultSharedPreferences(Context ??) 

}} 

私はAndroidStudio & OkHttpの最新バージョンを使用しています。

感謝;)

答えて

3

あなたはどこにでも(つまり、あなたのインターセプタ)からコンテキストを取得することを可能にするクラスを作成することができます

:次に、このようなあなたのマニフェストにこれを追加し

public class MyApp extends Application { 
    private static MyApp instance; 

    public static MyApp getInstance() { 
     return instance; 
    } 

    public static Context getContext(){ 
     return instance; 
    } 

    @Override 
    public void onCreate() { 
     instance = this; 
     super.onCreate(); 
    } 
} 

<application 
    android:name="com.example.app.MyApp" 

そして、あなたのインターセプタでは、次の操作を行います。

PreferenceManager.getDefaultSharedPreferences(MyApp.getContext()); 
+0

メモリリークの原因にはなりませんか?アプリケーションオブジェクトを静的変数に格納する。 –

関連する問題