美文网首页
一些冷知识

一些冷知识

作者: NullPointe_8e82 | 来源:发表于2018-06-19 19:17 被阅读0次

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。

相关文章

  • 一些冷知识

    Dialog初化始时是通过Context.getSystemServer 来获取 WindowManager,而如...

  • 一些冷知识

    1 “剃发易服”早在金的时候女真人就干过,当然也引起了一系列的反抗,不同的是那时候终是挺过去了 2 蒙古最早是个部...

  • 我的世界攻略大全011-MC玩家必备的冷知识(3)

    我的世界中有哪些冷知识?了解一些冷知识对游戏很有帮助,下面小白就为大家盘点《我的世界》冷知识大全,新手必看冷知识汇...

  • HTML标签那些事

    目录: 一. 一些HTML偏冷知识 二. HTML5语义化标签 一. 一些HTML偏冷知识 contentedit...

  • 一些有趣但没用的冷知识(1)

    冷知识就是一些我们平常很少接触到知识 在网上搜索冷知识通常都会告诉你一些生活小常识 之前小晶也写过 现在想跟大家聊...

  • Android的一些冷知识

    这里介绍一些Android的一些冷知识。 App进程是从哪里开始启动的 ActivityManagerServic...

  • 一些冷知识小分享

    1.一般而言,网上或广告所说的捐卵,其实是卖卵,我们国家并没有女生捐卵这一项目。多余的卵子往往来自正规的生殖中心,...

  • 冷知识

    刚刚看到了一篇文章,简要的提取了一下信息,在这里分享了一下,可能有的是假的不必当真 1,约三分之一的人类都是寄生兽...

  • 冷知识

    “把手放在盐水中,半小时后会起皱,6小时后皮肤开始剥落,22小时后指甲会脱离……” “家猫从9楼以上跌落,死亡率1...

  • 冷知识

    1、在荷兰当乞丐,必须事先向政府申请,有关当局经过调查,证明有行乞的必要,才发给执照。不过这名乞丐的收入所得是需要...

网友评论

      本文标题:一些冷知识

      本文链接:https://www.haomeiwen.com/subject/cgrzeftx.html