7 勇敢地追

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 1w+

CountDownLatch介绍

在项目中,我们通常会执行一些耗时操作,有的时候是同时执行若干个,然后执行完了还要等结果。通常我们会怎么做呢?Handler,或者runOnUIThread。但是有没有别的选择了呢?有的,就是CountDownLatch先来看个例子public class MainActivity extends Activity { private ArrayList<Integer> ...

2018-12-02 19:53:30

编译时注解(三)Arouter源码讲解

项目中我们有时需要跨模块startActivity,但是这样需要配置menifest,不方便。这时就需要阿里的一个路由框架ArouterArouter的使用就不再多说了。这篇文章主要讲解他的源码1.初始化ARouter.init( this );public static void init(Application application) { if (!hasInit) ...

2018-12-02 14:08:54

编译时注解(二)JavaPoet的使用

上一篇文章提到AbstractProcessor中生成java类,可以使用JavaPoet开源库进行编写。但是有个问题,addModifier提示无法找到Modifier,其实只要把compile project(’:libprocess’)改成annotationProcessor project(’:libprocess’)就可以了。但是这么一来定义的MethodProcessor就...

2018-11-18 13:53:48

编译时注解(一)AbstractProcessor实战

Java中的注解(Annotation)是一个很神奇的东西,特别现在有很多Android库都是使用注解的方式来实现的。我们并不讨论那些在运行时(Runtime)通过反射机制运行处理的注解,而是讨论在编译时(Compile time)处理的注解。下面便入手学习下Java注解处理器。简单实践:1.创建注解@Target({ElementType.TYPE})@Retention(Retent...

2018-11-04 14:14:26

okhttp拦截器的使用------修改baseurl

有的时候做项目的时候会遇到调用接口的url和之前接口定义的url不一样,很可能连retrofit已经设置好的baseurl都要换,但是retrofit并没有提供修改baseurl的方法。那我们只能通过别的方式,比如通过拦截器修改baseurlpublic class MainActivity extends AppCompatActivity { private static S...

2018-07-21 14:42:39

Bitmap详解

1.bitmap占多少内存getByteCount()方法是在API12加入的,代表存储Bitmap的色素需要的最少内存。API19开始getAllocationByteCount()方法代替了getByteCount()。 这是API26的 public final int getByteCount() { if (mRecycled) { ...

2018-07-15 16:03:26

嵌套滑动机制详解

嵌套滑动机制主要涉及两个接口public interface NestedScrollingChild { void setNestedScrollingEnabled(boolean var1); boolean isNestedScrollingEnabled(); boolean startNestedScroll(int var1);//开启嵌套滚动流程

2018-01-24 17:09:21

嵌套滑动机制探究

https://www.cnblogs.com/wjtaigwh/p/6398562.html https://segmentfault.com/a/1190000002873657按照上面的例子打了log滑动开始E/child: startNestedScrollE/parent: onStartNestedScroll----------------------决定是否要配合其进行嵌套滚动

2017-12-27 17:27:13

Promise

promise就是一个对象,用来传递异步操作的消息,它代表未来才会知道的结果。 它有两个特点 (1)对象状态不受外界影响。3种状态(进行中pending,已完成resolved,已失败rejected) (2)一旦状态改变就不会再变。状态改变只有两种可能(pending->resolved,pending->rejected) 缺点 (1)无法取消 (2)不设置回调函数,内部错误不会反应

2017-10-17 22:05:54

java虚拟机和内存模型

1.垃圾收集器概述垃圾收集器(Garbage Collection),通常被称作GC。 GC主要做了两个工作,一个是内存的划分和分配,一个是对垃圾进行回收。 关于对垃圾进行回收,被引用的对象是存活的对象,而不被引用的对象是死亡的对象也就是垃圾,GC要区分出存活的对象和死亡的对象,也就是垃圾标记,并对垃圾进行回收。2.垃圾标记算法在对垃圾进行回收前,GC要先标记出垃圾,那么如何标记呢,目前有两种垃

2017-10-12 15:43:58

retrofit的使用

1.动态代理 http://blog.csdn.net/lxj1137800599/article/details/760221412.常见注解说明 (1)一般的getpublic interface IUserBiz{ @GET("users") Call<List<User>> getUsers();}@GET中所填写的value和baseUrl组成完整的路径 (2)动态

2017-10-12 15:39:03

observeOn()与subscribeOn()的区别

Observable.just("RxJava") .map(new Function<String, String>() { @Override public String apply(@NonNull String s) throws Exception {

2017-10-12 15:31:04

android全局替换字体最新方案

github上有一个Calligraphy库,这个库可以用来替换字体。核心代码就是CalligraphyLayoutInflater,它继承默认LayoutInflater并且取代默认inflater来渲染整个图层。当你设置好了字体以后自然就会用新字体来渲染文字。但问题是,现在这个库只能实现一开始加载的时候渲染文字,那如果我正在一个Activity里面操作,里面有viewpager,fragment

2017-09-26 15:23:26

RN刷新回调

有的时候我们需要从A进入B,然后B返回到A,A同时也需要刷新A的代码(在进入B时传入刷新要用到的函数)goGouWu() { //alert('点击了去购物车'); const { navigator } = this.props; //为什么这里可以取得 props.navigator?请看上文: //<Component {...r

2017-09-10 18:01:44

RN监听返回键

BackAndroid已经被废弃。改用BackHandler 关键代码componentWillMount() { if (Platform.OS === 'android') { this.listener = BackHandler.addEventListener('hardwareBackPress', this.onBackAndroid);

2017-09-10 17:56:31

使用TabLayout遇到的几个坑

1.setupWithViewPager以后之前已经设置好的tab的视图消失了看源码: setupWithViewPager里面有这段 final PagerAdapter adapter = viewPager.getAdapter(); if (adapter != null) { // Now we'll popu

2017-09-06 14:59:52

强制获取焦点

private void getFocus(int index) { mEditTexts[index].setFocusable(true);//设置输入框可聚集 mEditTexts[index].setFocusableInTouchMode(true);//设置触摸聚焦 mEditTexts[index].requestFocus();//请求

2017-09-04 16:17:20

正则表达式

//^ 匹配输入字符串开始的位置 //$ 匹配输入字符串结尾的位置 //* 零次或多次匹配前面的字符或子表达式。例如,zo* 匹配z,zo,zoo等 Pattern p = Pattern.compile("^zo*$"); Matcher m = p.matcher("zooo"); System.out.println("*测试:" + m.matche

2017-09-04 15:03:54

React Native的模态,AsyncStorage,DeviceEventEmitter

1.模态modalA界面<Modal animationType='slide' transparent={false} visible={this.state.isModal} onRequestClose={() => this.onRequestClose()}> <HalfHourHot removeModal={(data) => this.clos

2017-08-30 22:05:01

RN实现TabNavigator

(1)实现import React, {Component} from 'react';import { StyleSheet, Text, View, //Navigator, Image} from 'react-native';import Home from '../home/GDHome';import HourList from '../ho

2017-08-27 10:12:32

查看更多

勋章 我的勋章
    暂无奖章