CrazyDailyQuestion
CrazyDailyQuestion copied to clipboard
每日一问: 水滴石穿,聚沙成塔,坚持数月, 必有收获~
#### View 事件分发 在最新的 Android 系统中,事件的处理者不再由 InputEventReceiver 独自承担,而是通过多种形式的 InputStage 来分别处理,它们都有一个回调接口 onProcess 函数,这些都声明在 ViewRootImpl 内部类里面,并且在 setView 里面进行注册,比如有 ViewPreImeInputStage 用于分发 KeyEvent,这里我们重点关注与 MotionEvent 事件分发相关的 ViewPostImeInputStage。在它的 onProcess 函数中,如果判断事件类型是 SOURCE_CLASS_POINTER,即触摸屏的 MotionEvent 事件,就会调用 mView 的 dispatchPointerEvent...
Activity在横竖屏切换时悄悄保存了viewModelStore,放到了NonConfigurationInstances实例里面,横竖屏切换时保存了又恢复了回来,相当于ViewModel实例就一直在,也就避免了横竖屏切换时的数据丢失
Service的跨进程通信主要由两种Android提供的方法进行,一个是AIDL,通过创建一个AIDL文件来完成,另一个是利用Messenger,发送Message来实现
### 方法一: ```java static int[] twoMaxNum(int[] data){ if(data==null ||data.length==0) return null; // 1. 用一个数组大小为2的int类型作为目标数组接收 int result[]=new int[2]; // 2. 把这个 两个数组第一个值和第二个值 作为数组的最大值 result[0]=result[1]=Integer.MIN_VALUE; // 3. 遍历数组 for(int i=1;iresult[0]) // 4....
第一步使用Thread继承Ruable   加锁修饰当前线程对象 唤醒其他需要this锁的进程来竞争锁,当前进程等到临界区代码执行完毕才释放锁 休息一段时间,放大差异 - 代码一处的this.notify()调用后 会等待synchronized(this){}的所有代码执行完毕之后才释放,并不是立马释放的 立即阻塞当前线程 - 代码二处的this.wait() 当前线程调用了this.wait()方法之后,阻塞的是当前线程,然后唤醒等待this锁的线程
http 报文格式分为两种,请求报文和响应报文 ### 请求报文 请求报文由四个部分组成 - 请求行(Request-Line) - 请求方法(Method) - 请求 URI - HTTP 协议版本 - 请求头部(Request Header Fields) 这部分由成对的请求头部组成,用来告知服务端请求的更多信息。 - 消息体(Message Body) 请求方法之类的 ### 响应报文 