
android
文章平均质量分 71
醉相逢
这个作者很懒,什么都没留下…
展开
-
jetPack 架构组件状态保存(来自官网)
jetPack 架构组件状态保存(来自官网)在发生系统发起的 Activity 或应用销毁后,需要及时保存和恢复 Activity 的界面状态,这是用户体验的一个至关重要的部分。在这些情况下,用户希望界面状态保持不变,但是系统会销毁 Activity 及其中存储的任何状态。要使系统行为符合用户预期,可以把 ViewModel 对象、onSaveInstanceState() 方法和/或本地存储空间结合起来使用,从而在发生此类应用和 Activity 实例转换后保持界面状态。在决定如何组合这些选项时,需转载 2020-09-29 16:39:05 · 391 阅读 · 0 评论 -
Jetpack 组件 LiveData + viewModel 使用分析
Jetpack 组件 LiveData + viewModel 使用分析1、LiveData 简介LiveData 是一个可观察对象的持有者,与常规的可观察对象不同,liveData 是生命周期感知的,这意味着它尊重其他应该用程序组件(如 activity,fragment ,service)这种意识确保LiveData只更新处于活动生命周期状态的应用程序组件观察者LiveData 认为一个观察者的生命周期处于启动或恢复状态,那么这个观察者(由观察类表示)就处于活动状态LiveData 只向活动的观原创 2020-09-28 17:07:27 · 602 阅读 · 0 评论 -
JetPack LifeCycle 组件
JetPack LifeCycle 组件一、LifeCycle 简介:lifeCycle 是 Android JetPack 系列库中的一个组件,可以使其他对象感知 activity 后者fragment 生命周期的变化。通过该组件可以使分离activity 和fragment 生命周期的方法同时可以获取当前的 生命周期状态 进行具体业务处理.Lifecycle 使用两种主要枚举跟踪其关联组件的生命周期状态:1.1、Event 和 stateEvent:ON_CREATEON_START原创 2020-09-27 16:51:25 · 195 阅读 · 0 评论 -
ButterKnife process 处理流程
ButterKnife process 处理流程:一、ButterKnifeButterKnife 是一个运行时注解库,通过 processor(注解处理器)来实现注解处理的 ,经过Processor 接口提供的一些工具类进行自定义注解处理,结合JavaPoet 进行代码的自动生成,procssor 位于 javax.annotation.processing 包下,具体的方法可以访问jdk 文档进行了解,下面列出了常用的几个方法1.1、procossor 类结构:abstract Abstract原创 2020-09-01 19:46:51 · 253 阅读 · 0 评论 -
android webView 图片选择
android webView 图片选择一、webView 图片选择器调用触发开发中经常会与H5 交互,遇到图片选择怎么办呢?WebChromeClient 中 onShowFileChooser 可以用来处理图片选择问题代码如下: mWebView.setWebChromeClient(new WebChromeClient(){ private Uri imgUri; @Override public boolean原创 2020-08-28 11:56:53 · 1571 阅读 · 0 评论 -
OKHttp 源码解析(四):ConnectInterceptor 拦截器
ConnectInterceptor:ConnectIntercepter 拦截器的代码比较简单,实际上它是调用了其它实现类,连接拦截器通过 输入输出流进行网络连接通过 streamAllocation.newStream 创建一个httpCodec: @Override public Response intercept(Chain chain) throws IOException { RealInterceptorChain realChain = (RealInter原创 2020-08-04 16:04:03 · 204 阅读 · 0 评论 -
Dagger系列(二)常用注解的使用:
Dagger2(二)常用注解的使用:Dagger2起源于Dagger,是一款基于Java注解来实现的完全在编译阶段完成依赖注入的开源库,主要用于模块间解耦、提高代码的健壮性和可维护性。Dagger2在编译阶段通过apt利用Java注解自动生成Java代码,然后结合手写的代码来自动帮我们完成依赖注入的工作。Dagger2注解 :我们在使用dagger2 的时候经常用到一些注解:@Inject@Inject有两个作用,一是用来标记需要依赖的变量,以此告诉Dagger2为它提供依赖;二是用来标记构造函数原创 2020-06-13 23:15:37 · 552 阅读 · 0 评论 -
Arouter 使用(一):
Arouter 使用(一):官方git: https://github.com/alibaba/ARouter/blob/master/README_CN.md一、Arouter 简介:1、功能介绍支持直接解析标准URL进行跳转,并自动注入参数到目标页面中支持多模块工程使用支持添加多个拦截器,自定义拦截顺序支持依赖注入,可单独作为依赖注入框架使用支持InstantRun支持MultiDex(Google方案)映射关系按组分类、多级管理,按需初始化支持用户指定全局降级与局部降级策略页原创 2020-06-12 14:55:03 · 560 阅读 · 0 评论 -
Dagger系列(一)
Dagger系列(一)Dagger 是一个对象注入框架,我们用采用编写接口框架自动生成实现类的方式来生成实现代码,我们只需要通过相关注解来注入对象:举个例子,以下举例采用官方的ATM demo:第一步加入依赖 implementation 'com.google.dagger:dagger:2.22.1' annotationProcessor 'com.google.dagger:...原创 2019-10-29 15:07:57 · 235 阅读 · 0 评论 -
(jetPack)数据绑定(二)
使用可观察对象当一个对象发生变更会发出通知,数据绑定库允许使用对象,字段以及 集合 进行观察一个就旧的对象可以使用数据绑定但是修改对象不会自动引起UI 的更新,数据绑定可用于使您的数据对象在数据更改时通知其他对象(称为侦听器)当这些可观察数据对象之一绑定到UI且数据对象的属性更改时,UI将自动更新。可观察字段创建实现该Observable接口的类涉及一些工作 ,如果您的类仅具有一些属性,...原创 2019-10-29 09:41:19 · 296 阅读 · 0 评论 -
(jetPack)数据绑定(一)
数据绑定库一、搭建环境build.grage 添加 dataBindingandroid{ ... dataBinding{ enabled = true }}二、示例项目:xml 文件:<?xml version="1.0" encoding="utf-8"?><layout xmlns:android="http://schemas.android...原创 2019-10-28 16:10:54 · 366 阅读 · 0 评论 -
Notication 应用
package union.com.viewgroup.utils;import android.app.Notification;import android.app.NotificationChannel;import android.app.NotificationManager;import android.app.PendingIntent;import android.c...原创 2019-09-19 11:55:16 · 214 阅读 · 0 评论 -
ViewPager 指示器
http://blog.youkuaiyun.com/lmj623565791/article/details/42160391转载 2017-08-29 17:12:12 · 239 阅读 · 0 评论 -
Android 7.0 拍照使用getUriForFile
Android 7.0 拍照使用getUriForFile原创 2017-08-29 17:40:51 · 1594 阅读 · 0 评论 -
仿咕咚长按解锁按钮圆环效果
package com.union.healthysport.view.widget;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.RectF...原创 2018-04-25 18:05:19 · 871 阅读 · 0 评论 -
RxJava 基本介绍
RxJavaRxjava 介绍RxJava是ReactiveX(反应性扩展)的Java VM实现:一个库,用于使用可观察序列组合异步和基于事件的程序。RxJava 是轻量的RxJava 适用于多种语言 Groovy, Clojure, JRuby, Kotlinand Scala.RxJava 起步Gradle 集成compile 'io.reactivex.rxjava2...原创 2019-07-01 10:58:35 · 572 阅读 · 0 评论 -
JavaPoet 的使用
一、介绍JavaPoet是一个用于生成. Java源文件的Java API。gitHub:https://github.com/square/javapoet文档地址:https://square.github.io/javapoet/1.x/javapoet/在进行注释处理或与元数据文件(例如,数据库模式、协议格式)交互时,源文件生成非常有用。通过生成代码,您可以消除编写样板文件的需要,...原创 2019-08-19 15:50:40 · 781 阅读 · 0 评论 -
自定义titleLayout
JavaCode:package com.example.module_worldstudy.mvp.ui.widget;import android.app.Activity;import android.content.Context;import android.content.res.TypedArray;import android.graphics.drawable....原创 2019-08-12 14:17:03 · 471 阅读 · 0 评论 -
时间管理工具类 DateUtils
package union.com.viewgroup;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.Local...原创 2019-08-12 20:33:34 · 223 阅读 · 0 评论 -
清单文件meta-data 标签的解析:
定义接口Module:package union.com.viewgroup.utils.parser;/* * @Auther xiaobo * @Date 2019/8/16 15:32 * @Version 1.0 * @Desc 接口 */public interface Module { void println();}...原创 2019-08-19 15:50:08 · 518 阅读 · 0 评论 -
Fragment 在viewPager 中的数据处理问题(Fragment 的懒加载)
package union.com.viewgroup.ui.frgment;import android.content.Context;import android.os.Bundle;import androidx.fragment.app.Fragment;import androidx.fragment.app.FragmentManager;import androi...原创 2019-08-27 18:47:40 · 193 阅读 · 0 评论 -
动态代理的理解
动态代理的理解原创 2017-08-28 14:59:34 · 245 阅读 · 0 评论