通过RoboSpice异步执行一组请求的最简单方法是什么?
我在某个地方读到需要实现RequestRunner,但我不知道如何将它与SpiceManager合并,有什么想法吗?
发布于 2014-03-06 15:58:20
您可以覆盖可用线程的num,定义您自己的自定义SpiceService:
public class CustomSpiceService extends RetrofitGsonSpiceService {
/**
* Overrides the number of threads that will be used to make requests. The default
* is 1.
*/
@Override
public int getThreadCount(){
return NUM_THREAD;
}
} 之后,您可以在您的经理中使用您的新spiceService:
private SpiceManager spiceManager = new SpiceManager(CustomSpiceService.class);更重要的是,您可以检测到连接的类型,这样如果您处于Wifi连接中,就可以有更多的线程。
/**
* Overrides the number of threads that will be used to make requests. The default
* is 1, so if we are on a fast connection we use 4, otherwise we use 2.
*/
@Override
public int getThreadCount() {
ConnectivityManager connectivityManager =
(ConnectivityManager) DaftApp.getInstance().getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo info = connectivityManager.getActiveNetworkInfo();
if(info==null){
return 2; // there is no network available now. Anyway we use the default num of thread
}
switch (info.getType()) {
case ConnectivityManager.TYPE_WIFI:
case ConnectivityManager.TYPE_WIMAX:
case ConnectivityManager.TYPE_ETHERNET:
return 4;
case ConnectivityManager.TYPE_MOBILE:
return 2;
default:
return 2;
}
}https://stackoverflow.com/questions/22117740
复制相似问题