您的位置:首页 > 其它

一些零碎的知识点

2017-12-29 17:18 176 查看
3.

Andriod的文件创建

MODE_APPEND 的功能是判断是否有该文件,如果有在后面添加,而不是擦除

MODE_PRIVATE 该文件只能被创建他的应用访问(控制访问权限)

在内置目录默认地址下创建文件:

File file = this.getDir("imooc", MODE_PRIVATE);


下次运行时会创建并覆盖,若改成MODE_APPEND,而不会。

下载到外置目录的默认地址下:

File file = this.getExternalCacheDir();


如果数据保存到以上两个默认地址下,那么当软件卸载时,文件也会一同被删除,不会造成数据残留

2、

Arraylist中的元素不能这样移除:

ArrayList<Integer> numbers = new ArrayList<>();
for (int number : numbers) {
numbers.remove(number);
number = null;
}


(会有部分元素遗漏)

而应该:

ArrayList<Integer> numbers = new ArrayList<>();
for(Iterator it = numbers.iterator();it.hasNext();){
it.next();
it.remove();
}
}


/*

注1:it.next(),个人理解有点类似于链表的指针。如果不执行it.next(),那么就会进入死循环。

顺便一提,it.remove(),所删除的参数 == it.next()所返回的参数。

注2:之所以不写成for(Iterator it = numbers.iterator();it.hasNext();it.next()){}

是因为在执行第一次for循环时,it.next()并不会执行。

注3:执行it.remove()后,numbers的该元素也会被移除。

*/

或者采用倒序的方式。

``
ArrayList<Integer> numbers = new ArrayList<>();
int len = numbers.size();
for(int i = len;i>=0;i--){
number.remove(i);
}
}


1、

Handle延迟发送消息:

Message message = new Message();
message.arg1 = 1;
handler.sendMessageDelayed(message,2000);


而不是傻傻在Handle里用了线程睡眠(对,说的就是我自己)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: