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