Android小知识点一

一、内存泄漏(GC)

二、handler工作原理简述

三、toolbar


一、内存泄漏(GC)

概念:内存泄漏意思是内存没有指针指着了,没有程序管着了,但还占据着内存,就叫泄露。

一次泄露会用掉少量的内存,当程序使用很久,越来越多的内存被占据时就可能导致整个系统崩溃了。

原因:(1)数据库查询的Cursor对象没有关闭,Cursor的缓存,在java虚拟机外也有;

    (2)Bitmap没有事使用recycle回收,内存占用高;

    (3)ViewAdapter的getView中,没有使用contentView重用View,大量的View;

    (4)对象被长生命周期的对象引用,例如Activity的context被用到其它静态量上去;

          (5)其它特别消耗内存的对象。

二、handler工作原理简述

概述:它用于不同线程间进行通信,将handler的定义与handler应用放到不同的线程之中,在需要的时候,handler应用发出消息,定义handler的线程里的handle通过通过某种方法监听到消息(handle就r得被传递到其他线程或者是公共的),收到消息就执行它的handlemessage方法里的代码,起到了通信的作用。

实现原理:利用Handler,Looper,MessageQueue,Message这几个组件。

(1)线程要使用Looper管理消息,ui线程自带了一个,其他线程则需要创建一个Looper,注意一个线程最多只能有一个Looper;

(2)创建Looper时,里面就创建了一个MessageQueue,MessageQueue就是接收存储消息的队列;

(4)looper调用looper方法,死循环从messageQueue里面取消息出来(当前线程被阻塞了);

(3)handler应用调用sendMessage方法发送消息到Looper的MessageQueue中。(这里Handler源码中获取了Looper和Message的引用);

(4)looper.loop()方法取到了消息,调用handler的onHandleMessage方法

具体用法:

新线程 thread{

Looper.prepare();

Handler handler 定义;

Looper.loop();

}

其他线程:

thread.handler.sendMessage();

三、toolbar要设置

(1)setSupportActionBar(toolbar);
之后才能想actionbar一样进行操作,不如设置菜单。
(2)隐藏标题栏
调用activity的setTitle("");方法设置;
使用toolbar的seTitle方法不起作用;
 
 
 

(3)toolbar里面的布局 不能设置padding,不知道为什么,用组件代替。

(4)

CoordinatorLaout和
<android.support.design.widget.AppBarLayout
<android.support.design.widget.CollapsingToolbarLayout
组合实现toolbar先显示大的,向上滑动在显示小的的功能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值