当前位置: 首页 > news >正文

乌审旗建设局网站高端网站优化公司

乌审旗建设局网站,高端网站优化公司,泰州网站优化公司,开发公司出纳收款制度一、Activity 1、onSaveInstanceState(),onRestoreInstanceState的调用时机 onSaveInstanceState 调用时机 从最近应用中选择运行其他程序时 但用户按下Home键时 屏幕方向切换时 按下电源案件时 从当前activity启动一个新的activity时 onRestorInstanceState调用时机 只…

一、Activity

1、onSaveInstanceState(),onRestoreInstanceState的调用时机

onSaveInstanceState 调用时机

从最近应用中选择运行其他程序时

但用户按下Home键时

屏幕方向切换时

 

按下电源案件时

从当前activity启动一个新的activity时

onRestorInstanceState调用时机

只有activity确实是呗系统回收,重新创建activity的情况下才会调用。例如:

屏幕方向切换生命周期如下

onPause->onSaveInstanceState->onStop->onDestroy->onCreate->onstart->onRestoreInstanceState->onResume

2、activity的启动模式和使用场景

standard

默认模式,每次启动activity 都会创建一个新的实例

singleTop

一般应用于通知消息打开的页面

如果要启动的activity已经再栈顶,则不会重新创建,指挥调用该activity的onnewintent()方法。

如果要启动的activity不在栈顶,则会重新创建该activity的实例

singletask

一般适用于主页面

如果要启动的activity已经存在于它想要归属的栈中,那么不会创建新实例,将栈中位于该activity上的所有的activity出栈,同事该activity的onnewintent方法会被调用

singleinstance

例如呼叫来电界面

要创建再一个新栈,然后创建该activity实例并压入新栈中,新栈中只会存在这一个activity实例

3、activity之前传递数据的方式intent是否有大笑限制,如果传递的数据量偏大,有哪些方案

有,最好不要超过512k

可以用本地存储,或者缓存等方案进行传递

4、显示启动和隐示启动

显示启动 直接再清单文件写好调用

隐示启动 在清单文件里通过intent-filter 进行name配置,调用时可改成name值进行启动

5、scheme使用场景,协议格式,如何使用

scheme是页面内跳转协议,可以自定义scheme协议

定义格式

使用Uri.parse(“hr://test:8080/goods?goodsid=8888&name=test”)

 6、ANR的场景

Service TimeOut 未在规定时间执行完成,前台服务20S,后台200s

BroadCastQueue TimeOut 围在规定时间内处理完广播 前台广播10s,后台60s内

ContentProvider TimeOut publish 在10s内没有完成

Input Dispatching timeout 5s内未响应键盘出入,触摸屏幕等事件

Activity的生命周期回调阻塞并不会直接触发ANR,职不过死循环阻塞了主线程,如果系统有上述情况发生,就无法在相应的时间内处理从而触发ANR

7、oncreate和onsaveinstancestate回复数据时的区别

onrestoreintstancestate 不一定会被调用,因为它只有在上次activity被回收了才会调用

oncreate里的bundle参数可能为空,一定要做非空判断,而onrestoreintstancestate的bundle参数一定不会是空值

二、Service

1、service的生命周期,两种启动方式的区别

startService/bindService

如果服务已经开启,多次执行startService 不会重复执行oncreate,而是会调用onStart和onStartCommand

如果服务已经开启,多次执行bindService时,onCreate和onBind方法并不会被多次调用

startService 不会依赖于调用者,bindService 依赖于调用者

2、service于activity实现通信

通过Binder对象

Service继承Binder的内部类,并添加相应的逻辑方法

或通过BroadCast广播与activity通信

3、IntentService是什么,IntentService原理

IntentService是Service的子类,默认开启了一个工作线程HandlerThread,使用这个工作线程逐一处理所有启动请求,在任务执行完毕后会自动停止服务,只要实现一个方法onHandleIntent,该方法会接受每个启动求救的intent,能够执行后台工作和耗时操作。

三、BroadcastReceiver 

1、广播的分类和使用场景

广播分为两个角色,发送着 和 接受着

广播接收器分为两种,静态注册和动态注册

静态通过清单文件的标签申明的BroadcastReceiver

动态通过AMS.registerReceiver的方式注册,动态注册更灵活,可在不需要时通过unregisterReceiver取消注册

根据发送形式分为

        1、普通广播:通过Context.sendBroadcast发送,可并行处理

        2、系统广播:管使用系统广播时,只需在注册广播接受着时定义相关的action即可,不需要手动发送广播例如:网络变化,锁屏,飞行模式等

        3、有序广播:指的是发送出去的广播被BroadcastReceiver按照先后顺序进行接收,发送方式变为sendOrderedBroadcase(intent)。

        4、App应用内广播:Android的广播可以跨进程通信

        5、粘性广播:由于在5.0已经失效,不建议使用

四、ContentProvider

主要用来是应用间数据共享,提供统一的接口,例如通讯录,通话记录等

五、Handler

1、handler的实现原理

共分为 Handler、Message、MessageQueue和Looper

Handler负责消息的发送和处理

Message消息对象,相当于是实体

MessageQueue消息队列,用于存放消息对象的数据结构

Looper消息队列的处理者,用于轮询消息队列的消息对象

Handler发送消息时调用MessageQueue的enqueueMessage插入一条消息到MessageQueue,Looper不断轮询调用MessageQueue的next方法,如果发现message就调用handler的dispatchMessage,dispatchMEssage被成功调用,接着调用handlerMessage

2、子线程中能不能直接new一个Handler

不能,因为Handler的构造方法中,会通过Looper.myLooper()获取looper对象

3、Handler导致的内存泄露原因和解决方案

非静态内部类和匿名内部类都会隐式持有当前类的外部应用

当activity中使用handler,然后被销毁时还存在未处理或正在处理的消息,就会造成内存泄漏,

解决方式,1、将Handler的子类设置成静态内部类,使用WeakRererence弱引用持有Actiivty实例

2、当外部类结束生命周期时,清空Handler内部消息队列

4、HandlerThread时什么,好处,原理,使用场景

HandlerThread本质是一个线程类,他集成了Thread,有自己的内部Looper对象,通过Looper.loop进行循环,通过获取HandlerThread的looper对象传递给Handler对象,然后再handlerMessage方法中执行异步任务

优势

将loop运行在子线程中处理,减轻了主线程的压力,是主线程更流畅,有自己的消息对列不会干扰ui线程,串行执行,开启一个线程起到多个线程的作用

劣势

由于每一个任务队列逐步执行,一旦队列好事个过长,消息延时

对于io等操作,线程等待不能并发

5、idleHandler使用场景

闲时机制,不占用资源

http://www.yayakq.cn/news/938826/

相关文章:

  • 制作企业网站的新闻西安广告公司网站建设
  • 网站页面构架本地怎样上传自己做的网站
  • 山西网站开发萍乡海绵城市建设官方网站
  • 县级林业网站建设管理手机相册备份网站源码
  • 泉州英文网站建设德阳做网站的
  • 个人网站取名平台门户建设
  • 想学网站建设选计算机应用技术还是计算机网络技术哪个专业啊效果图外包
  • 网站规划的意义教育培训机构营销方案
  • 网站被黑了火车头 wordpress 发布接口
  • 做音频后期的素材网站建站之星凡客
  • 有专门做几口农机的网站怎样用ps做网站首页图
  • 专业网站建设套餐windows优化工具
  • 做网红用哪个网站宿州保洁公司电话
  • 最新网站建设的软件新手如何免费建网
  • 做动画片的网站企业管理制度标准范本
  • cdr可以做网站页面吗一人有限责任公司
  • 天津网站建设流程wordpress焦点图插件
  • wordpress终极简码宁波seo软件
  • php 微网站开发wordpress 主题定制
  • 做营销网站代理挣钱吗搜狗关键词排名查询
  • 如何看到网站做哪些关键字网站建设丨找王科杰信誉
  • 网站基础风格创建wordpress redis 缓存
  • asp商城网站源码下载优化设计四年级语文下册答案
  • 网站开发文档带er图网店运营推广的概念
  • 在百度做个卷闸门网站怎么做网站天下
  • 网站google排名出现过几分钟企业vi设计公司案例
  • 河北公司网站制作设计西安网站seo报价
  • 网站建设推广哪里实惠wordpress如何修改页头
  • 群晖网站建设处理错误500wordpress登出
  • 湖北建设注册中心网站域名购买一般多少钱