To save some preferences I use the class EasyPreferences . Because of that library I need a second Class that extends Application.
To add it to the manifest I have found here a clever solution. So easy. So simple.
But for some reason it does not work for me.
My first application class:
package com.stack.overflow.network;
import android.app.Application;
import android.content.ContextWrapper;
import android.text.TextUtils;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.toolbox.ImageLoader;
import com.android.volley.toolbox.Volley;
import com.pixplicity.easyprefs.library.Prefs;
public class NetworkController extends Application {
public static final String TAG = NetworkController.class.getSimpleName();
private RequestQueue mRequestQueue;
private ImageLoader mImageLoader;
//LruBitmapCache mLruBitmapCache;
private static NetworkController mInstance;
@Override
public void onCreate() {
super.onCreate();
mInstance = this;
}
public static synchronized NetworkController getInstance() {
return mInstance;
}
public RequestQueue getRequestQueue() {
if (mRequestQueue == null) {
mRequestQueue = Volley.newRequestQueue(getApplicationContext());
}
return mRequestQueue;
}
/*
public ImageLoader getImageLoader() {
getRequestQueue();
if (mImageLoader == null) {
getLruBitmapCache();
mImageLoader = new ImageLoader(this.mRequestQueue, mLruBitmapCache);
}
return this.mImageLoader;
}*/
/*
public LruBitmapCache getLruBitmapCache() {
if (mLruBitmapCache == null)
mLruBitmapCache = new LruBitmapCache();
return this.mLruBitmapCache;
} */
public <T> void addToRequestQueue(Request<T> req, String tag) {
req.setTag(TextUtils.isEmpty(tag) ? TAG : tag);
getRequestQueue().add(req);
}
public <T> void addToRequestQueue(Request<T> req) {
req.setTag(TAG);
getRequestQueue().add(req);
}
public void cancelPendingRequests(Object tag) {
if (mRequestQueue != null) {
mRequestQueue.cancelAll(tag);
}
}
}
The second application class:
package com.stack.overflow.HelperClasses.SharedPreferences;
import com.stack.network.NetworkController;
public class PrefsApplication extends NetworkController {
@Override
public void onCreate() {
super.onCreate();
new Prefs.Builder()
.setContext(getApplicationContext())
.setMode(ContextWrapper.MODE_PRIVATE)
.setPrefsName(getPackageName())
.setUseDefaultSharedPreference(true)
.build();
}
}
When I move the Prefs.Builder() into the onCreate() Method of Network controller everything works fine. But not if it is kept in its own class PrefsApplication. I don't understand why.
In AndroidManifest.xml is the Class NetworkController named.