自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 activity的启动流程

2020-03-25 17:49:14 149 1

原创 jvm内存分析

2020-03-25 17:44:45 149

原创 七大排序

2020-03-25 17:09:14 113

原创 java类加载机制

2020-03-25 17:05:31 114

原创 okhttp流程简单分析

2020-03-25 16:07:15 70

原创 retrofit原理初步分析

2020-03-25 15:59:24 66

原创 Rxjava普通流程分析

2020-03-25 15:47:18 69

原创 记一次List的整体向后移动

在实现recycleview的拖动排序中,通过itemtouchhelper能够简单的实现拖动排序,但是碰见一个问题,那就是在gridlayoutmanager类型下。如果将第二排和第一排的数据进行交换,那么list里的数据,不能只是简单的postion互换,因为他只是插入进去,然后后面的数据依次往后移动。 所以一直在思考有没有什么简单的办法,能够让所有list的数据自动往后移动一位通过研...

2019-03-20 11:21:42 1816

原创 记一次WebView的onTouch问题

在实际项目中,有些时候会对webview的touch事件进行重写但是在测试过程中发现,并没有收到UP事件,通过打断点跟踪,发现收到了CANCEL事件,说明事件被拦截了,通过查看源码和网上搜索发现,如果你设置了这项属性,那么就会拦截你的事件,因为这个事件本身就做了touch处理,代表着缩放,所以如果需要自己控制ontouch事件,就不要设置这个属性。...

2019-03-20 11:15:27 934

原创 Socket实现长连接需要注意的事项

如果关闭了输入输出流,那么下一次通信需要重新new Socket,关闭输入输出流,代表着关闭了Socket。实现长连接如果不关闭输入输出流,那么会被堵塞,因为另一方不知道你是否已经发送完了,这种时候可以选择加一个双方约定的结束符。长连接时,如果有一方断开了没有办法通知到另一方,那么需要2个小时另一方才会知道已经断开了,中间会浪费太多的资源,所以一般双方需要发送一个心跳包告知双方都还在线。...

2019-01-11 15:44:39 1453

原创 对Http的理解

Http的报文http的报文分为请求报文和响应报文,两者在格式上有一点差别,主要分为3个部分1 起始行2 头信息3 主体两者基本没什么区别,这里解释一下method 代表着请求方法,例如GET,POSTrequest-url 代表着请求的链接version 代表着http协议的版本status 指相应的状态码,例如200,404等reason-phrase 指的是响应的一...

2019-01-10 14:53:17 750

原创 MD中SerachView的简单使用

首先需要在menu里定义一个item和普通的menu定义没什么区别,关键是actionViewClass需要定义成SearchView然后只需要在activity的onCreateOptionMenu中去实例化就可以使用了searchView的方法在点击关闭时触发的close方法和点击回车触发submit方法。...

2019-01-09 17:39:37 143

原创 Android将view保存成图片的方法

2018-12-25 15:07:38 1199

原创 AS如何调试内存泄漏

首先 创建一个内存泄漏的例子因为匿名内部类默认持有外部类的强引用,所以当跳转到第二个activity,本应该被销毁的MainActivity会被线程持有,而导致不会被GC回收。然后通过AS提供的工具Android Profiler来找到内存泄漏的位置。选中MEMORY,点击垃圾桶旁边的堆栈收集。会得到这个时间段的所有数据信息。然后你会发现有两个实例,然后点击MainActiv...

2018-12-13 15:32:04 1457

原创 java基础学习

java中有哪几种引用?含义和区别是什么一、强引用如果一个对象用的是强引用,那么垃圾回收器一定不会回收他,在内存不足的时候,宁愿抛出oom,也不会回收。Android中声明的所有变量默认都是强引用。二、弱引用一个对象持有的是弱引用,那么在垃圾回收器回收的时候,如果当前内存充足,那么这个对象不会被回收,如果内存不充足了,对象就会被回收三、软引用一个对象持有的是软引用,当垃圾回收器回收...

2018-12-11 16:57:53 127

原创 关于序列化的知识

Parcelable 和 Serializable 有什么用,它们有什么差别?parcelable和serializable都是用来进行序列化操作的接口,能够将对象存储在硬盘,内存或者以网络传输。 serializable是java提供的序列化接口,只需要实现接口,定义serializableUUID就可以正常序列化和反序列化了,不定义uuid其实也可以,但是序列化的实现方式是通过对比u...

2018-12-11 11:53:09 217

原创 空闲线程IdleHandler

今天在看一篇性能优化文章的时候无意发现了这段代码通过了解,该方法的回调是在MessageQueue里面没有任务执行的时候会回调该方法,那么这个方法的回调就特别好理解了,当activity绘制完毕之后没有任何message时,就会回调这个方法,你可以在这个方法里做你自己的事。...

2018-12-10 14:50:34 541

原创 记录一次自定义Dialog的外边距问题

在自定义Dialog中,不管怎么设置外边距,最后都充满了屏幕关键的地方就是这里。将window的width设置成了match。如果将这里删除或者设置成wrap,那么在上方设置的dialog的params就算设置成match也就只能包裹内容,这时候需要重新设置dialog的params的width这样的话最后就会对左右两边有60的边距。这里只是随便写写,实际情况可以转换成dp。...

2018-12-04 17:17:51 2477

原创 关于View的知识

1.view的getWidth和getmeasureWidth的区别这2个方法都是简单的赋值操作,具体的行为发生在onmeasure和layout里。在onmeasure里,调用了setMeasureDimension,里面的getDefaultSize的方法,根据MeasureSpec返回相应的数值。在setMeasureDimension里,根据getDefaultSize里...

2018-12-03 17:51:56 265

原创 关于startActivityForResult

1.startActivityForResult的使用场景是什么。requestcode和resultcode的作用是什么。startActivityForResult是在从一个activity打开另一个activity之后,需要在打开的activity销毁时带回数据时进行使用的。requestcode用于表示你请求的id,resultcode是在setResult时用于返回请求的id,可以通...

2018-11-30 17:22:13 162

原创 Activity的启动模式

一、Activity的启动模式有哪几种,分别用于什么场景首先需要知道activity是以任务栈的方法存储的,接下来描述启动模式的区别。1.stand该模式是activity的默认模式,打开一个activity就将其放在任务栈的顶部,一个一个的堆叠。不会管任务栈内是否已经存在。这是最常用的启动模式,没有什么意外都是以此模式启动2.singleTask 该模式是栈内复用模式,如果在任务栈中...

2018-11-29 17:12:33 199

原创 关于radiogroup的选中

今天碰见一个问题,设置radiobutton的check为false,再次选中之前的按钮会发现没有办法选中。原因是因为在radiogroup里面设置radiobutton的选中状态不能通过radiobutton来设置,而是要通过radiogroup.check来设置,取消选中调用check(0)就好...

2018-11-29 16:37:32 1242

原创 理解Service

1.Service的start和bind有何区别(1)start和bind的生命周期不一样,通过start启动的服务,会执行oncreate和onstartcommand,多次调用start只会执行一次oncreate,但会多次执行startcommand而bindservice会执行oncreate和onbind,多次调用bind并不会在执行生命周期,只会执行一次。(2)start和b...

2018-11-28 17:51:57 185

原创 理解Java中的synchronized关键字

一、为什么需要synchronized关键字在java中,免不了为了提升效率而使用多线程,而使用了多线程,就可能会出现线程不安全,导致数据错误等结果,在这种情况下,为了防止多线程下 线程不安全,就会采用synchronized(当然也有其他方法),使用synchronized的关键就是他会获取锁,在一个线程拥有锁的情况下,另一个线程只能等待,直到第一个线程释放了锁才能进入被synchroniz...

2018-11-26 17:04:40 948

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除