一些零碎的知识点

3.
Andriod的文件创建

MODE_APPEND 的功能是判断是否有该文件,如果有在后面添加,而不是擦除
MODE_PRIVATE 该文件只能被创建他的应用访问(控制访问权限)

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

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

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


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

File file = this.getExternalCacheDir();

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



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

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

(会有部分元素遗漏)


而应该:

  ArrayList 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 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里用了线程睡眠(对,说的就是我自己)。

你可能感兴趣的:(Java,Andriod)