现象:Android滑动ListView需要请求网络图片资源,有明显的卡顿感,估计与log打印的内容有关

12-04 20:21:50.277: W/HttpMethodBase(19495): Cookie rejected: "$Version=0; cur_network=; $Path=/; $Domain=.kdweibo.com". Illegal domain attribute ".iweibo.comm". Domain of origin: "iweibo.comm"

12-04 20:21:51.507: I/global(19495): Loaded time zone names for en_US in 1225ms.

12-04 20:21:51.787: I/global(19495): Loaded time zone names for en_US in 1358ms.

12-04 20:21:52.187: I/global(19495): Loaded time zone names for en_US in 1399ms.

12-04 20:21:52.347: D/dalvikvm(1524): GC_EXPLICIT freed 145K, 50% free 4412K/8711K, external 152K/532K, paused 140ms

12-04 20:21:52.697: I/global(19495): Loaded time zone names for en_US in 1189ms.

12-04 20:21:52.717: W/HttpMethodBase(19495): Cookie rejected: "$Version=0; cur_user=; $Path=/; $Domain=.iweibo.com". Illegal domain attribute ".iweibo.com". Domain of origin: "iweibo.com"

12-04 20:21:52.977: I/global(19495): Loaded time zone names for en_US in 1190ms.

12-04 20:21:52.987: W/HttpMethodBase(19495): Cookie rejected: "$Version=0; cur_network=; $Path=/; $Domain=.iweibo.com". Illegal domain attribute ".iweibo.com". Domain of origin: "iweibo.com"

12-04 20:21:53.127: D/dalvikvm(19495): GC_CONCURRENT freed 1366K, 50% free 4188K/8263K, external 6258K/7479K, paused 2ms+6ms

12-04 20:21:53.427: I/global(19495): Loaded time zone names for en_US in 1245ms.

12-04 20:21:53.437: W/HttpMethodBase(19495): Cookie rejected: "$Version=0; cur_network=; $Path=/; $Domain=.iweibo.com". Illegal domain attribute ".iweibo.com". Domain of origin: "iweibo.com"

12-04 20:21:53.827: I/global(19495): Loaded time zone names for en_US in 1115ms.

12-04 20:21:54.297: I/global(19495): Loaded time zone names for en_US in 852ms.

0818b9ca8b590ca3270a3433284dd417.png

解决方法:禁止Cookie处理

org.apache.commons.httpclient.methods.DeleteMethod

org.apache.commons.httpclient.methods.GetMethod

org.apache.commons.httpclient.methods.PostMethod;

method.getParams().setCookiePolicy(CookiePolicy.IGNORE_COOKIES);

method.addRequestHeader("Connection", "close");

对于本地格式化时区的工具类做如下处理,缓存时区格式,避免每次都出现加载过慢

private static Map formatMap = new HashMap();

/**

* 解决 Android时区加载过慢的问题 Loaded time zone names for en_US in 1904ms.

* @see http://blog.163.com/dmg_123456/blog/static/567050632011515113530636/

* @param date

* @param format

* @return

*/

public static String getGMTFromDate(Date date, String format){

if (date == null) {

return null;

}

SimpleDateFormat sdf = formatMap.get(format);

if (null == sdf) {

sdf = new SimpleDateFormat(format, Locale.ENGLISH);

sdf.setTimeZone(TimeZone.getTimeZone("GMT"));

formatMap.put(format, sdf);

}

synchronized (sdf) {

// SimpleDateFormat is not thread safe

return sdf.format(date);

}

}

public static String getStringTypeDate(Date createdAt) {

//SimpleDateFormat dateFormat = new SimpleDateFormat(

//"EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);

//String date=null;

// date = dateFormat.format(createdAt)

//.replace("GMT+08:00", "+0800");

//date = dateFormat.format(createdAt)

//.replace("CST (China)", "+0800");

//return date;

return getGMTFromDate(createdAt, "EEE MMM dd HH:mm:ss z yyyy");

}

public static String getStringTypeDatePrivate(Date createdAt) {

//SimpleDateFormat dateFormat = new SimpleDateFormat(

//"EEE MMM dd HH:mm:ss.SSS z yyyy", Locale.ENGLISH);

//String date=null;

// date = dateFormat.format(createdAt)

//.replace("GMT+08:00", "+0800");

//date = dateFormat.format(createdAt)

//.replace("CST (China)", "+0800");

//return date;

return getGMTFromDate(createdAt, "EEE MMM dd HH:mm:ss.SSS z yyyy");

}

参考:

巧解Android时区加载过慢的问题  http://blog.163.com/dmg_123456/blog/static/567050632011515113530636/

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐