一些零碎的知识点

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值