![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
LilllS
这个作者很懒,什么都没留下…
展开
-
几种导致内存泄漏的常见错误
几种导致内存泄漏的常见错误Broadcast Receiver等未进行unregister例如:当你在Activity中register broadcast receiver,假如你没有unregister the broadcast receiver,及时你关闭了Activity,仍然会持有Activity的引用静态变量持有Activity、View或者大数据对象例如:无论什么原因你生命...原创 2020-04-02 11:03:39 · 647 阅读 · 0 评论 -
EditText 修改光标颜色和宽度
在android的输入框里,如果要修改光标的颜色及粗细步骤如下两步即可搞定:1.在资源文件drawable下新建一个光标控制color_cursor.xml<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" an...原创 2018-07-27 16:12:48 · 5147 阅读 · 0 评论 -
使用Retrofit下载文件和上传文件
使用Retrofit下载文件和上传文件上传第一种 只有文件/图片的上传/** * 上传图片 */@POST("room/fileUpload")@Multipartfun upload(@Part file: MultipartBody.Part): Observable<ResMsg>private fun upload() { ...原创 2018-07-29 17:15:11 · 625 阅读 · 0 评论 -
Android 利用Annotation Processing 编译时通过注解自动生成代码
Android 编译时注解生成代码类似ButterKnife的框架,时间有限只实现绑定View.利用 Annotation Processing,编译的过程中读取注解,然后使用JavePoet生成我们想要的代码项目结构依赖关系左侧的的依赖是可以传递的自动生成的代码我们要自动生成这样的代码,代替我们findViewById的繁琐操作public class MainActivit...原创 2018-09-27 15:42:35 · 1407 阅读 · 0 评论 -
OkHttp源码解析(一)
简单使用OkHttpClient client = new OkHttpClient();Request request = new Request.Builder() .url(&amp;amp;amp;quot;https://api.github.com/search/repositories&amp;amp;amp;quot;) .build();//执行请求的地方.client.newCall(request)...原创 2018-10-24 17:55:34 · 362 阅读 · 0 评论 -
OkHttp源码解析(二)之Interceptor
OkHttp中的InterceptorsgetResponseWithInterceptorChain()继续说getResponseWithInterceptorChain()方法Response getResponseWithInterceptorChain() throws IOException { // Build a full stack of interceptors. ...原创 2018-10-24 22:12:41 · 323 阅读 · 4 评论 -
Collections.synchronizedList使用方法
ArrayList众所周知ArrayList是非线程安全的,在多线程的情况下,向list插入数据的时候,可能会造成数据丢失的情况.并且一个线程在遍历List,另一个线程修改List,会报ConcurrentModificationException(并发修改异常)错误.VectorVector是一个线程安全的List,但是它的线程安全实现方式是对所有操作都加上了synchronized关键...原创 2018-10-26 16:40:58 · 24131 阅读 · 4 评论 -
使用Messenger进行跨应用(进程)通讯
使用Messenger进行跨进程通讯Messenger可以翻译为信使,使用它我们可以进行跨进程通讯.Messengers是一种轻量的IPC,通过构造方法可以轻松的看出它的底层是现实AIDL.public Messenger(Handler target) { mTarget = target.getIMessenger();}public Messenger(IBinder ta...原创 2018-11-01 12:07:44 · 534 阅读 · 0 评论 -
AIDL进行进程间通讯
AIDL进行进程间通讯AIDL是一个缩写,全称是Android Interface Definition Language,也就是Android接口定义语言在上一篇 使用Messenger进行跨应用(进程)通讯中,使用Messenger进行进程间通讯的时候,服务端是能一个个的处理客户端的请求,如果有大量的并发请求的时候,Messenger就不适用了.并且Messenegr只能传递消息,并不能跨...原创 2018-11-02 11:29:50 · 291 阅读 · 0 评论 -
详解Handler机制
Handler详解文中源码基于API 28,且部分有删减Handler有什么用? 为什么要用Handler?Android应用程序运行时会创建一个主线程就是我们常说的UI线程,而更新UI的操作只能在主线程进行.但是实际开发中,一些网络请求和耗时操作都要到子线程中进行,获取到执行结果之后想去修改]UI是不行的,所以Android设计了Handler,通过消息的机制来实现线程之间的通讯.为...原创 2019-11-14 20:27:55 · 226 阅读 · 0 评论