Чтобы сохранить некоторые настройки, я использую класс EasyPreferences. Из-за этой библиотеки мне нужен второй класс, расширяющий приложение.Несколько классов приложений в одном проекте
Чтобы добавить его в манифесте я нашел здесь умный solution. Так просто. Так просто.
Но по какой-то причине не работает для меня.
Мой первый класс приложения:
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);
}
}
}
Второй класс приложения:
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();
}
}
Когда я двигаю Prefs.Builder() в OnCreate() Метод сетевой контроллер все работает отлично. Но нет, если он хранится в своем классе PrefsApplication. Я не понимаю, почему.
В AndroidManifest.xml является класс NetworkController по имени.
Это именно то, что я делаю в приведенном ниже коде. И я не ошибаюсь, потому что код Prefs.Builder() никогда не выполняется – jublikon
, какой класс вы добавили в манифесте Android в теге приложения. –
android: name = "com.stack.overflow.network.NetworkController" – jublikon