美文网首页
经验总结

经验总结

作者: 小贱嘎嘎 | 来源:发表于2017-03-07 16:22 被阅读0次

1,不要在Application中存储全局都要用到的重要信息,因为当系统内存紧张时可能会销毁Application,之后会创建一个新的Application,这个时候在Application中的状态就没办法恢复了,所以有可能到处报NullPointerException

2,新建文件必须先新建目录否则创建会不成功

3,recyclerview更新数据时,每次数据源改变必须调用一次notifyXXXed方法,不能改变多次数据源只调用一次notify方法,因为这样会出现IndexOutOfBoundException

4,在for循环中操作list中的数据时别对list结构进行更改,否则出现[Java ConcurrentModificationException]

5,获取Content-Length属性时别用HttpUrlConnection的方法,应该使用HttpClient中的方法

/**
 * 使用httpclient获取下载文件长度,使用httpurlconnnection可能会出现一些问题
 *
 * @param urlStr 下载文件的地址
 * @return 返回长度
 */
public static long getContentLengthFromUrl(String urlStr) {
    long fileSize = 0;
    HttpClient client = new DefaultHttpClient();
    HttpGet httpGet = new HttpGet();
    try {
        httpGet.setURI(new URI(urlStr));
    } catch (URISyntaxException e) {
        e.printStackTrace();
    }
    HttpResponse response = null;
    try {
        response = client.execute(httpGet);
    } catch (IOException e) {
        e.printStackTrace();
    }
    HttpEntity entity = response.getEntity();
    fileSize = entity.getContentLength();
    client.getConnectionManager().shutdown();
    return fileSize;
}

6,在调用View的刷新方法时尽量使用invalidate方法,别用postInvalidate方法,postInvalidate方法会出现界面不刷新的情况。

7,RecyclerView与ScrollView不要嵌套使用,在安卓5.0以后会出现数据不展示完全的BUG,这个时候该使用NestedScrollView

相关文章

网友评论

      本文标题:经验总结

      本文链接:https://www.haomeiwen.com/subject/mnimgttx.html