移动开发
Spring之异步任务@Async详解分析
1 异步@Async详解
1.1 引言
在java中异步线程很重要,比如在业务流处理时,需要通知硬件设备,发短信通知用户,或者需要上传一些图片资源到其他服务器这种耗时的操作,在主线程里处理会阻塞整理流程,而且我们也不需要等待处理结果之后再进行下一步操作,这时候就可以使用异步线程进行处理,这样主线程不会因为这些耗时的操作而阻塞,保证主线程的流程可以正常进行。
最近在项目中使用了很多线程的操作,在这做
OC的泛型和__covariant __contravariant
Created by 大刘 liuxing8807@126.com
什么是泛型
泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参
比如:
@interface Computer : NSObject
@property (nonatomic, copy) NSString *name;
@end
@implementation Computer
@e
Handler和ThreadLocal的原理解析
前言
说到Handler机制不得不提的就是这几大将:Handler,Looper,MessageQueue,Message。延伸重点ThreadLocal!!! UI主线程初始化第一个Handler时会通过ThreadLocal创建一个Looper,该Looper与UI主线程一一对应。使用ThreadLocal的目的是保证每一个线程只创建唯一一个Looper。之后其他Handler初
10、String、String StringBuffer 和 StringBuilder 的区别是什 么?
String、String StringBuffffer 和 StringBuilder 的区别是什么?
String是只读字符串,它并不是基本数据类型,而是一个对象。从底层源码来看是一个final类型的字符数组,所引用的字符串不能被改变,一经定义,无法再增删改。每次对String的操作都会生成新的String对象。
每次+操作 :隐式在堆上new了一个跟原字
App进程的启动过程
本次源码基于Android11分析
相关源码:
/frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java
/frameworks/base/services/core/java/com/android/server/am/ProcessList.java
/frameworks/b
Flutter 实现Tab切换
Flutter 是通过Tabbar + TabbarView 来实现 类似Android Viewpager 页面切换的效果的。我个人觉得Flutter 的tab 切换实现过程要比Android的实现过程要简单容易不是一星半点,哈哈哈哈 ,因为她所用到的widget 都是google 官方封装好的,用起来代码量简洁了超级多!!
如果我们只是想要实现一个简单的页面切换的效果,不需要折叠悬浮置顶的功能
Swift 实现自定义 UICollectionView的 section 背景
自定义 section 背景
首先创建一个 section装饰背景注册类, 内部包含一个 UIImageView, 可作为自定义背景填充视图
class SectionBackgroundReusableView: UICollectionReusableView {
static let BACKGAROUND_CID = "BACKGAROUND_CID"
private
Android-推荐一个与H5交互的库(JsBridge)
图片来源网络,入侵必删
最近项目当中,需要与H5进行交互。如果快速实现需求呢?虽然很多框架都支持,但是我们前端大佬指定要使用JsBridge来进行交互。
JsBridge
这个开源库在 Java 和 JavaScript 之间架起了一座桥梁,它提供了从js调用java代码和从java调用js代码的安全便捷的方式。
导入项目
repositories {
// ...
m
onInterceptTouchEvent() 与 onTouch() 事件分析
学习笔记:直接上代码,对了在这里强调一点 onTouch() 与 onTouchEvent() 事件不一样。
先看布局文件:
<?xml version="1.0" encoding="utf-8"?>
<com.tinno.intercepttouch.MyFrameLayout xmlns:android="