这是我在注销时遇到错误的意图服务
public class intentService extends IntentService {
@Override
protected void onHandleIntent(Intent intent) {
RequestQueue queue = MyVolley.getRequestQueue(this);
queue = MyVolley.getRequestQueue(this);
GsonRequest<Routes> gsonRequest = new GsonRequest<Routes>(
url_routes + key, Routes.class, null, createMyReqSuccessListenerRoutes(key),
createMyReqErrorListenerRoutes());
queue.add(gsonRequest);
在intentservice中接收的功能
private Response.Listener<Routes> createMyReqSuccessListenerRoutes(final int key) {
return new Response.Listener<Routes>() {
@SuppressLint("LongLogTag")
@Override
public void onResponse(Routes response) {
if (ds.checkTable(DataBaseHelper.TABLE_NAME_TRANSPORT)) {
ds.createTableRoute();
final int size = response.getResults().size();
if (size > 0) {
final int part = 100 / size;
int i;
for (i = 0; i < size; i++) {
ds.insertRoutes(DataBaseHelper.TABLE_NAME_ROUTE,
response.getResults().get(i).getRoute(),
response.getResults().get(i).getStop_id(),
response.getResults().get(i).getNum(),
response.getResults().get(i).getLat(),
response.getResults().get(i).getLon(),
response.getResults().get(i).getRadius(),
response.getResults().get(i).getAudio(),
response.getResults().get(i).getEnd(),
response.getResults().get(i).getMove_time(),
response.getResults().get(i).getStop_time(),
response.getResults().get(i).getPlayonce(),
response.getResults().get(i).getName(),
key
);
}
}
}
}
}
}
从其他活动中调用
serviceintentRoute = new Intent(DataBase.this, intentService.class);
startService(serviceintentRoute.putExtra("key", idp));
我的RouteData类
public class RoutesData {
private Integer route;
private Integer stop_id;
private Integer num;
private String name;
private String lat;
private String lon;
private Integer radius;
private String audio;
private Integer stop_time;
private Integer move_time;
private Integer end;
private Integer trid;
public RoutesData() {
}
public Integer getRoute() {
return route;
}
public void setRoute(Integer route) {
this.route = route;
}
public Integer getStop_id() {
return stop_id;
}
public void setStop_id(Integer stop_id) {
this.stop_id = stop_id;
}
public Integer getNum() {
return num;
}
public void setNum(Integer num) {
this.num = num;
}
public Integer getRadius() {
return radius;
}
public void setRadius(Integer radius) {
this.radius = radius;
}
public String getAudio() {
return audio;
}
public void setAudio(String audio) {
this.audio = audio;
}
public String getLat() {
return lat;
}
public void setLat(String lat) {
this.lat = lat;
}
public String getLon() {
return lon;
}
public void setLon(String lon) {
this.lon = lon;
}
public Integer getEnd() {
return end;
}
public void setEnd(Integer end) {
this.end = end;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getTrid() {
return trid;
}
public void setTrid(Integer trid) {
this.trid = trid;
}
public Integer getStop_time() {
return stop_time;
}
public void setStop_time(Integer stop_time) {
this.stop_time = stop_time;
}
public Integer getMove_time() {
return move_time;
}
public void setMove_time(Integer move_time) {
this.move_time = move_time;
}
}
和路线
public class Routes {
public ArrayList<RoutesData> data;
public Routes(ArrayList<RoutesData> data) {
this.data = data;
}
@Override
public String toString() {
return "Response [results=" + data + "]";
}
public ArrayList<RoutesData> getResults() {
return data;
}
}
Class MyVolley
public class MyVolley {
private static RequestQueue mRequestQueue;
private Context context;
public MyVolley() {
}
static void init(Context context) {
mRequestQueue = Volley.newRequestQueue(context);
int memClass = ((ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE))
.getMemoryClass();
// Use 1/8th of the available memory for this memory cache.
int cacheSize = 1024 * 1024 * memClass / 8;
// mImageLoader = new ImageLoader(mRequestQueue, new BitmapLruCache(cacheSize));
}
public static RequestQueue getRequestQueue(Context mContext) {
if (mRequestQueue == null) {
mRequestQueue = Volley.newRequestQueue(mContext);
}
return mRequestQueue;
}
}
class gsonrequest
public class GsonRequest<T> extends Request<T> {
private final Gson gson = new Gson();
private final Class<T> clazz;
private final Map<String, String> headers;
private final Response.Listener<T> listener;
/**
* Make a GET request and return a parsed object from JSON.
*
* @param url URL of the request to make
* @param clazz Relevant class object, for Gson's reflection
* @param headers Map of request headers
*/
public GsonRequest(String url, Class<T> clazz, Map<String, String> headers,
Response.Listener<T> listener, Response.ErrorListener errorListener) {
super(Method.GET, url, errorListener);
this.clazz = clazz;
this.headers = headers;
this.listener = listener;
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
return headers != null ? headers : super.getHeaders();
}
@Override
protected void deliverResponse(T response) {
listener.onResponse(response);
}
@Override
protected Response<T> parseNetworkResponse(NetworkResponse response) {
try {
String json = new String(
response.data,
HttpHeaderParser.parseCharset(response.headers));
Log.d("Response.success", json.toString());
return Response.success(
gson.fromJson(json, clazz),
HttpHeaderParser.parseCacheHeaders(response));
} catch (UnsupportedEncodingException e) {
return Response.error(new ParseError(e));
} catch (JsonSyntaxException e) {
return Response.error(new ParseError(e));
}
}
}
我不知道如何接收所有数据
Android Studio中的Logcat输出
注销
D/Response.success: {"status":true,"data"
:[{"route":1,"num":1,"stop_id":30,"name":"\u043f\u043b.......etc..
没有完整的线,下一行我有错误
D/ERROR RESPONSE: ERROR RESPONSE Routes
如果我理解正确,内存不足以满足所有json数组的需求 我试图通过
增加它int cacheSize = 2048 * 2048 * memClass / 8;
但不是运气 我不得不接受所有大规模没有划分的
抱歉我的格式化代码