自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 IntentService 原理详解

1 简单介绍IntentService是一个继承自Service的抽象类,是一种特殊的Service。所以两者的基本配置和启动方式都是一样的,区别是IntentService创建了自己的特有方法onHandleIntent(),可以用来处理异步请求,实现多线程,因此用来执行后台耗时操作任务,而每一个耗时操作都会以工作队列的方式在IntentService的onHandleIntent回调方法中执行,并且,每次只会执行一个工作线程,执行完第一个再执行第二个。2 使用方式步骤① 定义IntentServi

2020-07-25 17:50:35 926

原创 Android之handler异步消息处理机制解析

Android UI线程是不安全的,如果尝试在子线程中更新ui,程序就会奔溃,所以我们经常会使用Handler,AsyncTask,HandlerThread,IntentService 来进行处理以便达到在主线程中更新ui的操作,这种机制被称为异步消息处理机制1:创建Handler对象我们在子线程以及主线程中各创建一个HandlerHandler handler1;Handler handler2;handler1 = new Handler(); Log.i("handler1

2020-07-19 20:07:49 242

原创 Android 中Serializable以及Parcelable两种序列化的使用以及区别

当我们在进行页面的跳转时,需要通过Intent或者Bundle来传输对象或者集合,这时候就需要序列化将对象转换为可以传输的二进制流。通过Intent或者是Bundle中的源码发现除了可以传输基本数据类型,还可以传输下面两种数据 Parcelable value 以及Serializable value序列化:将一个对象转换成可存储或可传输的状态(二进制流)。序列化后的对象可以在网络上进行传输,也可以存储到本地。反序列:将二进制流转换为对象的过程序列化的主要作用:1 永久性保存对象,保存对象的字节

2020-07-18 23:11:55 869

原创 Glide 基础配置BaseRequestOptions

1 设置缓存:DiskCacheStrategyskipMemoryCache :内存缓存策略 glide默认是打开内存缓存的,如果想关闭的话设置为true true 关闭内存缓存,false 打开内存缓存(默认)diskCacheStrategy:磁盘缓存策略 DiskCacheStrategy.NONE 关闭磁盘缓存DiskCacheStrategy 的枚举意义: DiskCacheStrategy.NONE: 表示不缓存任何内容。 DiskCacheS

2020-06-28 10:14:48 1387

原创 Glide的with()方法和生命周期的源码分析

/** * Begin a load with Glide by passing in a context. * * @param context Any context, will not be retained. * @see #with(android.app.Activity) * @see #with(android.app.Fragment) * @see #with(androidx.fragment.app.Fragment) * @see #with(androidx.fra

2020-06-24 15:28:03 348

原创 Handler之Message分析

创建Message的3中方式:第一种方式://这种是常见的创建对象的方式,每次需要发送消息的时候都需要创建一个Message 对象,每次都要到堆内存中开辟新的存储空间,使用之后jvm再次进行回收处理Message message = new Message();第二种方式:Message message = mHandler.obtainMessage();先简单看下源码,发现其实实现的原理也是方式三,调用的是obtain()方法,所以下面着重分析obtain方法: public fina

2020-06-19 14:55:09 795

原创 Android获取WebView网页中的title详解

本文主要是介绍在原生APP中打开web页面,获取web的title的几种方法方式一:通过WebChromeClient中onReceivedTitle()方法来获取测试1:这种是通过加载本地的html文件来实现的,目录src/main/assets/web.html<html><head> <meta charset="UTF-8"/></head><body><title>我是WebView的title&l

2020-06-17 14:16:03 3618

原创 Android WebView与 JS 的交互

交互方式总结Android与JS通过WebView互相调用方法:Android调用js的代码,js调用Android的代码,两者之间是通过WebView来沟通交互的Android调用JS代码的方法有2种:通过WebView的loadUrl()通过WebView的evaluateJavascript()JS调用Android代码的方法有3种:通过WebView的addJavascriptInterface()进行对象映射通过WebViewClient的shouldOverrideLoa

2020-06-16 16:42:10 332

原创 Android Webview使用攻略基础详解

1. 简介webview是一个基于webkit引擎,展示web页面的控件android 的Webview在低版本和高版本采用了不同的webkit版本内核,4.4之后直接使用了Chrome2. 作用显示和渲染web页面,直接使用html文件(网络加载或者是本地的assets中的)作为布局,可以和JavaScript交互调用WebView控件功能强大,除了具有一般View的属性和设置外,还可以对url请求、页面加载、渲染、页面交互进行强大的处理。3. 使用介绍3.1 Webview类常用

2020-06-15 16:04:54 680

原创 Android 实现图文混排

主要是实现图片和文字混合排列,左边的图片是一个标志,类似商品条目

2020-05-16 16:58:45 1237

原创 Kotlin 封装Rxjava,Retrofit网络请求,mvp实现登录页面

本文主要是简单的使用并且封装了Rxjava和Retrofit实现网络请求,mvp实现登录的操作,主要实现语言是Kotlin

2020-05-03 18:19:52 419

原创 Glide3升级到Glide4遇到的问题以及解决方法

第一点:设置过渡动画Glide3 Glide.with(this) .load(img1) .placeholder(R.drawable.ic_launcher_background) .error(R.drawable.ic_launcher_background) ...

2020-04-25 10:40:52 1402

原创 Android继承自AppCompatActivity设置状态栏的方法

先看一条错误信息: Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.android Studio在执行新建项目时出现此错误,出现此错误的原因就是:Activty继承自android.support.v7.a...

2020-04-18 13:32:01 536

原创 Dart以及Flutter第一次安装与使用详解

说明:这次主要是Windows系统在Android studio 和VS Code上第一次安装,创建第一个flutter项目,并且使用夜深模拟器打开项目运行。

2020-04-11 11:53:10 1289

空空如也

空空如也

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

TA关注的人

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