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

广州番禺专业做网站网络营销教材电子版

广州番禺专业做网站,网络营销教材电子版,上海制作网站的公司,安微建设厅网站查架子工真假1、Application是什么? Application和Activity,Service一样,是android框架的一个系统组件,当android程序启动时系统会创建一个application对象 用来存储系统的一些信息。通常我们是不需要指定一个Application的,这时系统会自动帮我们创建 如果需要创建…

1、Application是什么?

Application和Activity,Service一样,是android框架的一个系统组件,当android程序启动时系统会创建一个application对象

用来存储系统的一些信息。通常我们是不需要指定一个Application的,这时系统会自动帮我们创建

如果需要创建自己 的Application也很简单创建一个类继承 Application并在manifest的application标签中进行注册

(只需要给Application标签增加个name属性把自己的 Application的名字定入即可)。

 

Android系统会为每个程序运行时创建一个Application类的对象且只创建一个、可以理解为单例模式的一个类。

它的生命周期是整个程序运行中最长的 因为它是全局的单例,所以在不同的Activity和Service中获取的都是一个对象。

一般会使用Application来进行一些数据传递,数据缓存的操作。

2、Application生命周期

Application中包含了五个公开的方法
1)void  onConfigurationChanged(Configuration newConfig)
2)void  onCreate() 
3)void  onLowMemory()
4)void  onTerminate()
5)void onTrimMemory()

 

第一个是在配置被改变时触发
第二个是在程序创建时创建
第三个内存不够时触发
第四个当终止程序时调用 但是不能保证一定调用
第五个是在内存清理时触发

 

3、实例展示

/*** @author ljcheng* @date 2019/6/29*/
public class MyApplication extends Application {private static String TAG = "MyApplication";@Overridepublic void onCreate() {// 程序创建的时候执行KLog.d(TAG, "onCreate");super.onCreate();}@Overridepublic void onTerminate() {// 程序终止的时候执行//当终止应用程序对象时调用,不保证一定被调用,当程序是被内核终止以便为其他应用程序释放资源,那//么将不会提醒,并且不调用应用程序的对象的onTerminate方法而直接终止进程KLog.d(TAG, "onTerminate");super.onTerminate();}@Overridepublic void onLowMemory() {// 当后台程序已经终止资源还匮乏时会调用这个方法。好的应用程序一般会在这个方法里面释放一些不必// 要的资源来应付当后台程序已经终止,前台应用程序内存还不够时的情况。KLog.d(TAG, "onLowMemory");super.onLowMemory();}@Overridepublic void onTrimMemory(int level) {// 程序在内存清理的时候执行// HOME键退出应用程序、长按MENU键,打开Recent TASK都会执行KLog.d(TAG, "onTrimMemory");super.onTrimMemory(level);}@Override//配置改变时触发这个方法public void onConfigurationChanged(Configuration newConfig) {KLog.d(TAG, "onConfigurationChanged");super.onConfigurationChanged(newConfig);}}

 

四、总结一下

1.Application的生命周期在整个应用运行期间是最长的

2.具体关于Applicatiom被杀死的情况在上面的代码已有体现 下面引用下其他人总结的一些情况

 

备注:application 被杀死的情况分析:
为了决定在内存较低的时候杀掉哪个进程, Android会根据运行在这些进程内的组件及他们的状态把进程划分成一个”重要程度层次”. 其重要的程度按以下规则排序:

1:前端进程可以是一个持有运行在屏幕最前端并与用户交互的Activity的进程(onResume方法被调用时),也可以是持有一个正在运行的IntentReceiver(也就是说他正在执行自己的onReceiveIntent方法)的进程. 在系统中, 只会有少数这样的进程, 并且除非内存已经低到不够这些进程运行, 否则系统不会主动杀掉这些进程. 这时, 设备通常已经达到了需要内存整理的状态, 所以杀掉这些进程是为了不让用户界面停止响应.

2:可视进程是持有一个被用户可见, 但没有显示在最前端 (onPause方法被调用时) 的Activity的进程. 举例来说, 这种进程通常出现在一个前端Activity以一个对话框出现并保持前一个Activity可见时. 这种进程被系统认为是极其重要的, 并且通常不会被杀掉, 除非为了保持所有前端进程正常运行不得不杀掉这些可见进程.

3:服务进程是持有一个Service的进程, 该Service是由startService()方法启动的, 尽管这些进程用户不能直接看到, 但是通常他们做的工作用户是十分关注的(例如, 在后台播放mp3或是在后台下载 上传文件), 所以, 除非为了保持所有的前端进程和可视进程正常运行外, 系统是不会杀掉服务进程的.

4:后台进程是持有一个不再被用户可见的Activity(onStop()方法被调用时)的进程. 这些进程不会直接影响用户体验. 加入这些进程已经完整的,正确的完成了自己的生命周期(访问Activity查看更多细节), 系统会在为前三种进程释放内存时随时杀掉这些后台进程. 通常会有很多的后台进程在运行, 所以这些进程被存放在一个LRU列表中, 以保证在低内存的时候, 最近一个被用户看到的进程会被最后杀掉

5:空进程是没有持有任何活动应用组件的进程. 保留这种进程的唯一理由是为了提供一种缓存机制, 缩短他的应用下次运行时的启动时间. 就其本身而言, 系统杀掉这些进程的目的是为了在这些空进程和底层的核心缓存之间平衡整个系统的资源

 

http://www.lbrq.cn/news/2416123.html

相关文章:

  • 网站建设分金手指排名一软文推广广告
  • 网站如何做服务器授权书搜索关键词查询工具
  • 独立系统网站360关键词推广
  • 用ps怎么做网站导航条论述搜索引擎优化的具体措施
  • 购物商城网站模板淘宝如何刷关键词增加权重
  • soho外贸网站建设重大军事新闻最新消息
  • 网站服务器开发长沙网站优化效果
  • iis7.5 网站打不开营销培训课程有哪些
  • 廊坊web成都seo论坛
  • 移动网站开发教程下载百度指数行业排行
  • 扬州城乡建设局网站张雷明履新河南省委常委
  • 衡水网站建设怎么做上海外贸seo
  • 豪车网站建设背景太原seo网络优化招聘网
  • 微网站是用什么开发的广州最新消息
  • 大连网站建设详细流程搜索引擎排名优化建议
  • 机械英文网站百度网盘云资源搜索引擎
  • 网站开发收税站长统计app软件
  • 东莞网站推广优化阿里巴巴推广
  • 自学网站建设工资厦门谷歌seo公司有哪些
  • 专业教学资源库网站建设工作万网域名查询官网
  • 源码商城交易平台南京百度关键字优化价格
  • 平度市城乡建设局网站清远seo
  • 怎么做谷歌收录的网站bt磁力库
  • 网站编程脚本语言营销手段和技巧
  • 网站开发难吗如何在百度上做免费推广
  • 委托做的网站版权归属深圳网络推广
  • 单页面网站制作技术百度搜图
  • 简单网站制作教程seo优化几个关键词
  • 两学一做网站网址大全网站优化系统
  • 网站建设技术方案模板亚马逊的免费网站
  • OCR 身份识别:让身份信息录入场景更高效安全
  • AK视频下载工具:免费高效,多平台支持
  • Selenium 处理表单、弹窗与文件上传:从基础到实战
  • react-window 大数据列表和表格数据渲染组件之虚拟滚动
  • 在服务器无网络的环境下安装 VS Code Remote-SSH 组件
  • 050_Set接口(HashSet / TreeSet / LinkedHashSet)