自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 vue 双向绑定(v-model 双向绑定、.sync 双向绑定、.sync 传对象)

1. v-model实现自定义组件双向绑定v-model其实是个语法糖,如果没按照相应的规范定义组件,直接写v-model是不会生效的。再说一遍,类似于v-on:click可以简写成@click,v-model是两个表达式合在一起的简写。记住这个,下面具体说明。1.1 input双向绑定子组件MyInput.vue:<template> <div>输入 <input :value="value" @input="input"/> &

2021-09-09 10:40:51 739 1

原创 如何让多个线程顺序执行

先说一下为什么会有这样的要求,如果是简单的要求按顺序执行代码,直接一行行写下来就行了。但是接口调用我们一般都放在工作线程里面,而且有时候需要拿一个接口返回的参数去请求另一个接口,这就需要控制线程按某种顺序执行。方法1:join()public class A1 extends Thread { @Override public void run() { try { System.out.println("--- thread A1 start --

2021-04-19 18:28:19 251

原创 Service 的两种启动方式和「Service 与 Activity 数据交互」

1. Service 的两种启动方式Activity 中可以有两种方式启动 Service,不同方式启动时 Service 的生命周期也不一样,现在在 Activity 中定义四个 Button,分别是 startService、stopService、bindService、unbindService,Service 中各生命周期中分别打印 Log 日志,通过日志查看生命周期执行情况:// ...

2020-04-24 10:12:03 516

原创 Handler 消息机制以及内存泄漏

1. 消息机制1.1 post系列通过查看源码可知,post(Runnable r)、postDelayed(Runnable r, long delayMillis)最终调用的都是sendMessageDelayed方法:// post public final boolean post(Runnable r){ return sendMessageDelayed(getPost...

2020-04-05 23:25:14 179

原创 Handler 中的 handleMessage 所在线程是由什么决定的?

大多数情况下,handleMessage所在线程和 handler 初始化所在的线程相同,但 handler 初始化的时候可以传入一个 Looper 对象,此时handleMessage所在线程和参数looper所在线程相同。1. 含参构造public Handler(Looper looper)class MainActivity : AppCompatActivity() { va...

2020-03-30 17:08:43 895

原创 keep-alive时watch路由route引起的问题用activated解决

不添加keep-alive每次进入页面都会重新渲染页面,添加了keep-alive后只渲染一次。但是有个小问题:动态路由的参数改变后,还是加载以前的页面,created中的数据请求不执行。此时如果在watch中监听$route是可以的,如果监听到 route 参数变了就重新请求数据(created 中的函数)。上面方法可以解决,但是由于页面是 keep-alive 的,所以只要路由变了(如...

2020-01-16 17:16:27 2148 1

原创 RxJava2和Retrofit2配合使用详解

不讲 rxjava 和 retrofit 而是直接上手 2 了,因为 2 封装的更好用的更多。1. 观察者模式常见的 button 点击事件为例,button 是被观察者,listener 是观察者,setOnClickListener 过程是订阅,有了订阅关系后在 button 被点击的时候,监听者 listener 就可以响应事件。这里的button.setOnClickListener...

2019-09-29 14:12:59 860

原创 像svn一样使用Git

用惯了 svn 的人,使用 Git 的时候,pull 命令可能会提示下面错误:Git Pull FailedYour local changes would be overwritten by merge. Commit, stash or revert them to proceed. View them意思是说你本地改了一些东西,拉代码时有冲突,需要解决这些。如果此时你提交本地的...

2019-09-23 11:31:46 1002

原创 mpvue + Vant Weapp 开发小程序之 van-search

提示:不知道怎么配置环境的请先看第一篇的介绍:点击这里1. 引入"usingComponents": { "van-search": "/path/vant-weapp/search/index" }2. 使用<div> <van-search :value="val" placeholder="please input sear...

2019-09-20 14:26:07 4681

原创 mpvue + Vant Weapp 开发小程序之 van-datetime-picker 和 van-popup

不知道怎么配置环境的请先看第一篇的介绍:点击这里1.引入"usingComponents": { "van-popup": "/path/vant-weapp/popup/index", "van-datetime-picker": "/path/vant-weapp/datetime-picker/index" }2.使用van-popup默认从中间弹出,po...

2019-09-16 10:06:30 4465 1

原创 mpvue + Vant Weapp 开发小程序之 van-checkbox 和 van-checkbox-group

声明:我的文章很详(luo)细(suo),适合基础特别差的人看。1.引入首先,安装Vant Weapp:#根目录下打开命令提示符# 通过 npm 安装npm i vant-weapp -S --production# 通过 yarn 安装yarn add vant-weapp --production然后,在app.json中这样引入:"usingComponents":...

2019-09-10 17:10:16 10743 2

原创 外链...

自己用的图片外链

2019-07-18 11:02:22 319

原创 Dagger2 中的 Binds、IntoSet、IntoMap

1.@Binds使用@Inject初始化对象时有一种特殊情况:需要初始化的是接口的实例,这时候需要特殊处理一下,就需要用到@Binds@Moduleinterface IMainViewModule { @Binds abstract fun provideIMainView(main: IMainViewImpl): IMainView}这里使用 provideXXX...

2019-05-30 16:53:59 3308 2

原创 Android 水印相机开发

水印相机是自定义相机的一种,实现方法有很多,我看了很多别人的做的很漂亮,我做的就很普通了,不过总算是实现了拍照加水印的功能。我这边用到了SurfaceView,有人没用这个也做出来水印相机,个人觉得还是SurfaceView更方便一点(不接受反驳)。先看看效果:原图太大,我做了压缩,所以动图显得模糊。第一步,我们想一进入就打开相机预览,这个怎么做呢?相机功能由android.hardw...

2019-03-08 16:57:46 3672 4

原创 Dagger2 中使用 AndroidInjection 优化注入流程

每个 Activity 如果都需要手动inject(this)有点繁琐,com.google.dagger:dagger-android中包含AndroidInjection类可以优化注册。1.在 BaseActivity 中注册abstract class BaseActivity:AppCompatActivity() { override fun onCreate(savedIn...

2019-01-11 14:57:46 2760

原创 AndroidStudio 和 EclipseADT 创建项目时的 aidl 通信

Eclipse 用的人不多,在使用 aidl 实现进程间通信的时候,studio 和 eclipse 还是有点儿区别的。比如现在我们要实现一个求和功能,client 只负责输入,service 负责计算功能。client 界面:1.使用 Eclipse 编写 Service 代码service 目录结构:Calculate.aidl:package com.demo.aidl;i...

2018-12-29 17:34:44 388

原创 线形布局下的layout_weight(比重)属性

在布局文件中设置layout_weight(比重)属性时,以宽为例,假如 android:layout_width="wrap_content",或者 android:layout_width="0dp",此时,设置的layout_weight属性和数值成正比;假如 android:layout_width="match_parent",此时,设置的layout_weight属性和数值成反比。具...

2018-11-22 09:42:27 1095

原创 Dagger2 中的 SubComponent

两个 Component 之间除了 dependencies 依赖方式以外,还可以使用 SubComponent 方式。比如说 SeeComponent 想要依赖 AnimalComponent,我们可以这样操作:第一步,在 SeeComponent 中使用@SubComponent注解:@Subcomponentinterface SeeComponent { fun inject...

2018-11-20 16:05:28 463

原创 Dagger2 中的 Scope、dependencies

Scope中文意思是范围,Dagger2 中的@Singleton是 Scope 的一种默认实现,点进去可以看到:@Scope@Documented@Retention(RUNTIME)public @interface Singleton {}上面是 Java 方式,如果我们自定义一个 Scope 就很简单了(kotlin 语言):@Documented@Scope@Reten...

2018-11-20 16:04:42 486

原创 Dagger2 中的 Qualifier

Dagger2 中创建实例对象有两种方式:Inject 维度:通过用 Inject 注解构造函数Module 维度:通过工厂模式的 Module 创建其中,Module 的优先级比 Inject 高。基于同样维度的不同实例,比如@Inject A(){}和@Inject A(B b){},系统就会抱错,这种情况叫做依赖注入迷失。Qualifier限定符 就是解决依赖注入迷失的。1....

2018-11-16 15:43:41 457

原创 安卓原生和 H5 交互

1.安卓调用 H5 的方法:mWebView.loadUrl("javascript:webViewNotice(" + "'" + messageNum + "'" + ")");其中,webViewNotice 是方法名,messageNum 是原生传给 H5 的参数。安全起见,mWebView 最好判空一下。2.H5调用安卓原生的方法:WebSettings se...

2018-07-17 16:11:40 508

原创 两种方式处理ViewPager点击事件

我们知道,ViewPager 没有点击事件,许多时候,需要设置点击事件,比如轮询广告点击事件,这时候怎么处理呢?我总结了两种方式:对 ViewPager 的每个页面设置点击事件通过onTouch()方法处理下面分别说明一下:(一)对 ViewPager 的每个页面设置点击事件比如这种广告轮询,如果想要点击进入,就要给详情页面传入一个id,详情页通过网址+id(比如www.xxxxx/id)访问

2017-03-21 18:43:28 24986 1

空空如也

空空如也

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

TA关注的人

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