- 博客(15)
- 收藏
- 关注
原创 Android Handler之内存泄露原因及解决方案
先来说说什么是内存泄露首先内存泄露是一种现象,这种现象是指:当堆内存中的某个对象应该被释放,但是因为某些原因没有被释放,从而导致内存泄露。通常的原因都是指这个对象被“隐式引用”导致的。那么Handler为什么会引起内存泄漏呢?我们来看Actvity与Handler的引用关系简单说明一下:actvity中有一个handler,所以handler会持有activity的引用hand...
2019-08-23 12:05:04 321
原创 Android Handler之Looper有几个(四)
续上篇有关Handler你想要的都在这里了(一)有关Handler你想要的都在这里了(二)有关Handler你想要的都在这里了(三)Handler、Looper、MessageQueue协同工作的示意图读者应该对着流程图,看着我的帖子,跟着我的思路,翻着源码,去一步一步理解这个Handler机制的工作流程,不用妄想看一眼就懂,除非你原来就懂。请带着脑子看帖子下面我将尝试使用文字来描...
2019-08-23 11:59:52 658
原创 Android Handler之消息如何回到Handler(三)
续上两篇有关Handler你想要的都在这里了(一)有关Handler你想要的都在这里了(二)上篇我们讲到了当我们调用handler.sendMessage()最终的执行效果是在MessageQueue中插入了一条消息,然后代码无法跟踪了,给我们的源码阅读带来了困难,因为我们的思路断了,接下来怎么办呢?还记得我们在有关Handler你想要的都在这里了(一)中的第四部分怎么从主线程发送消息到子...
2019-08-23 11:49:46 313
原创 Android Handler之原理解析(二)
续上篇Android Handler之从主线程往子线程发消息(一)简单回顾一下Handler机制中几个对象的主要作用Handler机制中最重要的四个对象Handler:负责发送消息及处理消息Looper:复制不断的从消息队列中取出消息,并且给发送本条消息的HandlerMessageQueue:负责存储消息Message:消息本身,负责携带数据那么,一个消息从发送出去,到回到Han...
2019-08-23 10:21:08 381
原创 Android Handler之从主线程往子线程发消息(一)
网上有关Handler机制的文章已经不能用汗牛充栋来形容了,然而每次看的时候总觉得少了点什么,只好自己写一下自己对Handler的理解,欢迎各路大神拍砖。一、Handler机制是什么?答:Handler机制是Android中用于线程间通信一套通信机制。二、为什么是Handler?Handler机制为什么被那么多次的提及?答:从Android4.0开始,Android中请求网络强制不允许在主...
2019-08-23 10:18:17 3276 2
原创 Android 监听电池状态
Android中,当电池的状态发生改变的时候,系统会发送对应的广播,我们可以接收这些广播,从而实现监听电池的状态 IntentFilter intentFilter = new IntentFilter(); //电量状态发送改变 intentFilter.addAction(Intent.ACTION_BATTERY_CHANGED); // 电量低 intentF...
2019-08-23 10:14:46 286
原创 Kotlin基础之 while/do...while语句
While/do…while在Kotlin中是语句,不是表达式这意味着跟java中的 while / do … while 使用并不二致while循环var a= 10while (a>10){a–}do…while循环var a= 10do {a–} while (a>10)再次强调,在Kotlin中, while/do…while是语句,不再是表达式也就...
2019-08-23 10:12:59 622
原创 Kotlin基础之 When表达式
Kotlin中的When表达式就是java中的switch case语句我们在java中这样写switch case语句int day =1;switch (day){case 1:Log.d(TAG, “test: 周一吃包子”);break;case 2:Log.d(TAG, “test: 周二吃肉夹馍”);break;case 3:Log.d(TAG, “test:...
2019-08-23 10:12:26 864
原创 Kotlin基础之 if 表达式
Kotlin中if是一个表达式,而不是一个语句。表达式可以参与运行,可以有返回值,而语句不行,这就是区别例如我们在java中经常写这样的代码int a = 10;int b = 20;int c=b;//不带else的写法if (a>b)c=a;//带else的写法if (a>b){c=a;}else {c=b;}//三元表达式写法c= a>b?a...
2019-08-23 10:11:49 2527
原创 Kotlin基础之for循环
for i 循环,即在数字区间上循环//循环从0到100for (i in 0…100){print(i)}循环的区间和变量都可以随意指定//循环从10到20for (a in 10…20){ print(a) }跳步循环for (a in 0…20 step 2){ print(a) }这样打印的结果就是0、2、4、6、8…...
2019-08-23 10:11:11 775
原创 Kotlin基础之定义类及构造方法
Kotlin中定义类的关键字依然是class//如果是仅仅是定义一个类,那么可以省略大括弧,直接这样定义即可class Animal如果类中还需要方法或者属性的话,就需要加上大括弧了class Animal{var name:String?=nullvar age:Int=0 fun eat(){}}Kotlin中默认会为成员属性添加get/set方法示例中的name和age...
2019-08-23 10:10:33 981
原创 Kotlin基础之消除函数重载
先来复习一下java中的函数重载函数名称相同与返回值无关参数个数不同参数顺序不同public void getSum(){}public void getSum(int a){}public void getSum(int a,int b){}我们来看,我定义了3个重载的函数,这个重载的问题是,我们有一堆函数,看着眼睛都瞎了。现在我们来看看Kotlin中是怎么消除...
2019-08-23 10:09:40 218
原创 Kotlin基础之普通函数
kotlin中声明函数的格式是:fun 函数名称(参数) :返回值{}一、有返回值的函数声明/**kotlin中函数声明方法fun 声明函数的固定写法getSum 函数的名字,这个可以任意写,但请不要随意写a:Int 函数中的参数,其中a为参数名字,即所谓的形参,Int为形参类型,:为分隔符b:Int 解释同a:Int参数后面的:Int,函数的返回值类型大括弧中间的即为函数...
2019-08-23 10:08:54 195
原创 Kotlin基础之变量与常量
一、变量的声明1.隐式声明:var a = 10var b = “大王让我来巡山”可以看出,隐式声明统一使用var来作为关键字声明变量虽然都是隐式声明,但是ide依然会为我们检测数据类型例如:var a = 10a = "大王让我来寻山这样写就会报错。虽然是隐式声明,不过我们不能这样写:var a因为这样编译器是通过后面的数据来检测数据类型的,如果我们什么也不写,编译器就不...
2019-08-23 10:06:25 162
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人