我有一个利用以下lib的网络类:具有4个功能的Lib Docs进行获取,发布删除并将请求放置到服务器。这是简化版:
public static void get(Context context, String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {
httpClient.get(context, getAbsoluteUrl(url), params, responseHandler);
}
现在,不必通过参数传递上下文了,有没有办法找到功能内部调用活动的上下文呢?
遵循以下原则:
public static void get(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {
Context context = getCallignActivtyCntext() // <====== some thing like this
httpClient.get(context, getAbsoluteUrl(url), params, responseHandler);
}
我需要特定上下文的原因是,当活动被破坏时,我必须取消所有网络请求,并且该活动将根据上下文对所有请求进行分组或标识。
如果您实际上不需要方法的调用者的特定上下文,则可以通过以下方式使用Application上下文: getApplicationContext()
要静态访问您的应用程序上下文,您可以执行以下操作:
public class CustomApplication extends Application{
private static Context context;
public void onCreate(){
super.onCreate();
this.context = getApplicationContext();
}
public static Context getContext() {
return instance;
}
}
然后在清单中声明您的应用程序名称以匹配您的自定义类
<application android:name="com.path.to.class.CustomApplication" ...>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句