一些冷知识

Dialog初化始时是通过Context.getSystemServer 来获取 WindowManager,而如果用Application或者Service的Context去获取这个WindowManager服务的话,会得到一个WindowManagerImpl的实例,这个实例里token也是空的。之后在Dialog的show方法中将Dialog的View(PhoneWindow.getDecorView())添加到WindowManager时会给token设置默认值还是null。

如果这个Context是Activity,则直接返回Activity的mWindowManager,这个mWindowManager在Activity的attach方法被创建,Token指向此Activity的Token,mParentWindow为Activity的Window本身。




launchMode为singleTask的时候,通过Intent跳到一个Activity,如果系统已经存在一个实例,系统就会将请求发送到这个实例上,但这个时候----------系统就不会再调用onCreate方法,而是调用onNewIntent方法。

注意:设置了"singleTask"启动模式的Activity在已有的任务中已经存在相应的Activity实例,再启动它时会把这个Activity实例上面的Activity全部结束掉。


图片资源优化之一(采样率inSimpleSize):

final BitmapFactory.Options options = new BitmapFactory.Options();  

options.inJustDecodeBounds =true;  

BitmapFactory.decodeResource(res, resId, options);// 读取图片长款  

final int height = options.outHeight;

final int width = options.outWidth;

int inSampleSize = 1;

//判定,当原始图像的高和宽大于所需高度和宽度时

if (height > reqHeight || width > reqWidth) {

final int heightRatio = Math.round((float) height / (float) reqHeight);

final int widthRatio = Math.round((float) width / (float) reqWidth);

//算出长宽比后去比例小的作为inSamplesize,保障最后imageview的dimension比request的大

inSampleSize = heightRatio < widthRatio ? heightRatio : widthRatio;

//计算原始图片总像素

final float totalPixels = width * height;

// Anything more than 2x the requested pixels we'll sample down further

//所需总像素*2,长和宽的根号2倍

final float totalReqPixelsCap = reqWidth * reqHeight * 2;

//如果遇到很长,或者是很宽的图片时,这个算法比较有用

while (totalPixels / (inSampleSize * inSampleSize) > totalReqPixelsCap) {

inSampleSize++;

}

 options.inSampleSize=inSampleSize;

options.inJustDecodeBounds = false;

BitmapFactory.decodeResource(res, resId, options);


长连接(SSE):

        SSE是HTML5新增的功能,全称为Server-Sent Events。它可以允许服务推送数据到客户端。SSE在本质上就与之前的长轮询、短轮询不同,虽然都是基于http协议的,但是轮询需要客户端先发送请求。而SSE最大的特点就是不需要客户端发送请求,可以实现只要服务器端数据有更新,就可以马上发送到客户端。也就是单通!客户端不能主动发起请求。不适合IM。

WebSocket:

        WebSocket是Html5定义的一个新协议,与传统的http协议不同,该协议可以实现服务器与客户端之间全双工通信。简单来说,首先需要在客户端和服务器端建立起一个连接,这部分需要http。连接一旦建立,客户端和服务器端就处于平等的地位,可以相互发送数据,不存在请求和响应的区别。WebSocket的优点是实现了双向通信,缺点是服务器端的逻辑复杂。适合IM。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容