一个项目中的多个应用程序类

时间:2015-10-09 10:05:05

标签: android class manifest

要保存一些偏好设置,请使用课程EasyPreferences。 由于该库,我需要第二个扩展Application的类。

要将它添加到清单中,我在这里找到了一个聪明的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。

1 个答案:

答案 0 :(得分:2)

不需要,Android你的应用程序只能处理你想要的多个应用程序类,因为你必须从A_Application类扩展B_Application类。