gpt4 book ai didi

android - 管理多个应用程序类 - Volley + MultiDex

转载 作者:行者123 更新时间:2023-12-02 04:23:22 25 4
gpt4 key购买 nike

添加 google play 依赖项后,我的应用程序突破了 65K 限制。所以我必须启用 multidex 并将其添加到 list

android:name="android.support.multidex.MultiDexApplication"

但是还有一个单例的 volley 类可以扩展应用程序,因为我需要获取该类的上下文。

如何管理两者?有没有办法让 volley 类静态化?截击类代码是:

public class AppController extends Application {

public static final String TAG = AppController.class
.getSimpleName();

private RequestQueue mRequestQueue;
private ImageLoader mImageLoader;

private static AppController mInstance;

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

public static synchronized AppController getInstance() {
return mInstance;
}

public RequestQueue getRequestQueue() {
if (mRequestQueue == null) {
mRequestQueue = Volley.newRequestQueue(getApplicationContext());
}

return mRequestQueue;
}

public ImageLoader getImageLoader() {
getRequestQueue();
if (mImageLoader == null) {
mImageLoader = new ImageLoader(this.mRequestQueue,
new LruBitmapCache());
}
return this.mImageLoader;
}

public <T> void addToRequestQueue(Request<T> req, String tag) {
// set the default tag if tag is empty
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);
}
}
}

该类的用法是:

AppController.getInstance().addToRequestQueue(strReq, "Making a request");

如果可以将其设为静态,那么应该如何实现该类来进行网络调用?

最佳答案

尝试一下,只需在您的 Appcontroller 类中覆盖此方法即可。链接:How to use MultiDex with a custom Application class?

               @Override
protected void attachBaseContext(Context base)
{
super.attachBaseContext(base);
MultiDex.install(this);
}

关于android - 管理多个应用程序类 - Volley + MultiDex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35890558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com