private void loadUserFavorite() { uservice = new UserService(); fovservice = new UserFovoriteService(); User user = uservice.getLastLoginUser(); LogUtil.logInfo(getClass(), "start service:" + getClass().getName()); if (user != null) { String lastoptime = fovservice.getLatoptime(); LoadUserFavoriteThread lth = new LoadUserFavoriteThread(user.getUser_id(), lastoptime); lth.setLiserner( new NetFinishListener() { @Override public void onfinish(NetResult data) { if (data.result == NetResult.RESULT_OF_SUCCESS) { List<UserFavorite> fls = (List<UserFavorite>) data.returnData; if (fls != null && fls.size() > 0) for (UserFavorite ul : fls) fovservice.saveOrUpdate(ul); } stopSelf(); // 停止后台服务 } }); lth.start(); } else stopSelf(); // 停止后台服务 }
@Override public NetResult onResponseSuccess(JSONObject jsonObject) { try { if (jsonObject != null && jsonObject.getInt("ajax_optinfo") == NET_RETURN_SUCCESS && jsonObject.getInt("hasdata") == HAS_DATA) { List<Record> recorddata = null; int count = jsonObject.getInt("totalcount"); if (jsonObject.has("records")) { JSONArray array = jsonObject.getJSONArray("records"); Record rec = null; recorddata = new ArrayList<Record>(); for (int i = 0; i < array.length(); i++) { rec = new Record(); JSONObject jo = array.getJSONObject(i); rec.setType(jo.getInt("type")); rec.setUser_id(jo.getString("user_id")); rec.setVilleage_id(jo.getInt("farm_id")); rec.setSave_type(jo.getInt("save_type")); rec.setRecord_id(jo.getInt("record_id")); rec.setLabel_name(jo.getString("label_name")); rec.setNick_name(jo.getString("nick_name")); rec.setBatch_id(jo.getInt("batch_id")); rec.setSave_date(jo.getString("create_time")); rec.setSend_date(jo.getString("save_date")); rec.setIsdel(jo.getInt("isdel")); rec.setLastoptime(jo.getString("lastoptime")); rec.setLng(jo.getDouble("lng")); rec.setLat(jo.getDouble("lat")); rec.setContext(""); rec.setTrace_code(jo.getString("batch_code")); rec.setVariety_id(jo.getInt("variety_id")); rec.setVariety_name(jo.getString("variety_name")); rec.setUser_type(jo.getInt("user_type")); if ((jo.getInt("save_type") & Record.BATCHRECORD_TYPE_OF_TEXT) == Record.BATCHRECORD_TYPE_OF_TEXT) { if (jo.has("context")) rec.setContext(jo.getString("context")); } if ((jo.getInt("save_type") & Record.BATCHRECORD_TYPE_OF_IMAGE) == Record.BATCHRECORD_TYPE_OF_IMAGE) { if (jo.has("images")) { JSONArray imgs = jo.optJSONArray("images"); String img = null; RecordResource resource = null; for (int m = 0; m < imgs.length(); m++) { resource = new RecordResource(); img = (String) imgs.get(m); // img = img.replaceAll("\\.", "_thumb."); int lastp = img.lastIndexOf("."); img = img.substring(0, lastp) + "_cutmid." + img.substring(lastp + 1); resource.setNeturl(HttpUrlConstant.URL_HEAD + img); resource.setType(Record.BATCHRECORD_TYPE_OF_IMAGE); resource.setState(RecordResource.RESOURCE_STATE_SYNCHRONISE); rec.addResource(resource); } } } if ((jo.getInt("save_type") & Record.BATCHRECORD_TYPE_OF_VIDEO) == Record.BATCHRECORD_TYPE_OF_VIDEO) { if (jo.has("videos")) { JSONArray imgs = jo.optJSONArray("videos"); String video = null; RecordResource resource = null; for (int m = 0; m < imgs.length(); m++) { resource = new RecordResource(); video = (String) imgs.get(m); resource.setNeturl(video); resource.setType(Record.BATCHRECORD_TYPE_OF_VIDEO); resource.setState(RecordResource.RESOURCE_STATE_SYNCHRONISE); rec.addResource(resource); } } } if ((jo.getInt("save_type") & Record.BATCHRECORD_TYPE_OF_AUDIO) == Record.BATCHRECORD_TYPE_OF_AUDIO) { if (jo.has("audios")) { JSONArray imgs = jo.optJSONArray("audios"); String audio = null; RecordResource resource = null; for (int m = 0; m < imgs.length(); m++) { resource = new RecordResource(); audio = (String) imgs.get(m); resource.setNeturl(audio); resource.setType(Record.BATCHRECORD_TYPE_OF_AUDIO); rec.addResource(resource); } } } if ((jo.getInt("save_type") & Record.BATCHRECORD_TYPE_OF_TEMPLATE) == Record.BATCHRECORD_TYPE_OF_TEMPLATE) { if (jo.has("template")) { JSONArray templates = jo.optJSONArray("template"); if (templates != null && templates.length() > 0) rec.setContext(templates.get(0).toString()); } LogUtil.logInfo(LoadUserRecordThread.class, "template:" + jo.getString("template")); } // 用户头像 File fl = new File(AppConstant.USERIMG_DIR + rec.getUser_id()); if (fl.exists()) { rec.setUser_img(AppConstant.USERIMG_DIR + rec.getUser_id()); } else { String userimgurl = jo.getString("person_imageurl"); if (userimgurl != null) { Bitmap mBitmap = null; if (userimgurl.indexOf("http") >= 0) mBitmap = BitmapFactory.decodeStream(HttpUtil.getImageStream(userimgurl)); else mBitmap = BitmapFactory.decodeStream( HttpUtil.getImageStream(HttpUrlConstant.URL_HEAD + userimgurl)); if (mBitmap != null) { userimgurl = rec.getUser_id(); BitmapUtils.saveFile(mBitmap, userimgurl, AppConstant.USERIMG_DIR); rec.setUser_img(AppConstant.USERIMG_DIR + userimgurl); } } } rec.setState(rec.getSave_type()); recorddata.add(rec); } } Map<String, Object> rdata = new HashMap<String, Object>(); rdata.put("datacount", count); rdata.put("datas", recorddata); return new NetResult(NetResult.RESULT_OF_SUCCESS, "获取数据成功!", rdata); } else { return new NetResult(NetResult.RESULT_OF_ERROR, "未获取到数据!"); } } catch (Exception e) { e.printStackTrace(); return new NetResult(NetResult.RESULT_OF_ERROR, "操作失败!"); } }
@Override public void onDestroy() { LogUtil.logInfo(getClass(), "destory service:" + getClass().getName()); super.onDestroy(); }