当前位置: 首页 > 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/1336303.html

相关文章:

  • 古典网站织梦模板/网站seo查询
  • 电脑报网站建设/南宁优化网站收费
  • 开奖网站怎么做/百度扫一扫识别图片
  • 免费网站建设咨询/最近新闻报道
  • phpcms主题移植wordpress/seo短视频网页入口引流
  • 郑州第一附属医院不孕不育科/seo关键词快速提升软件官网
  • 产品推广方案推广思路和方法/seo流量增长策略
  • 建设集团网站 技术支持中企动力/广州seo诊断
  • 做IT的会做网站吗/搜索引擎营销的英文简称
  • 低代码平台开发/长沙市seo百度关键词
  • 深圳做网上商城网站/怎样开自己的网站
  • 岳阳做公司网站/免费打广告网站
  • 域名解析过程/网站关键词如何优化上首页
  • vps设置网站访问用户权限/百度推广登录官网
  • 手机做炫光图头像的网站/企业网络搭建方案
  • php网站分类目录源码/搜索引擎营销的内容和层次有哪些
  • 淘宝网页美工设计/seo专员是什么职业
  • 网站编程源码免费/2022拉新推广赚钱的app
  • 陕西网站建设咨询/seo黑帽教程视频
  • 营销型网站建设主要教学内容/小程序平台
  • 企业网站排行榜/一站式软文发布推广平台
  • 做英文网站公司/手机网站免费客服系统
  • 影视广告宣传片制作公司/seo搜索排名
  • 网站建设都用哪个好/网络销售的工作内容
  • 基于java开发网站开发/5188关键词平台
  • 北京米兰广告设计有限公司/网站推广与优化平台
  • 做b2b网站管理系统/外包公司怎么赚钱
  • 用dw做网站时怎么添加弹窗/今日全国疫情一览表
  • ppt设计公司/短视频排名seo
  • 自己怎么做淘宝客网站吗/sem与seo
  • Tauri Qt孰优孰劣
  • Java集合学习之forEach()遍历方法的底层原理
  • Etcd客户端工具Etcd Workbench更新了1.2.0版本!多语言支持了中文,新增了许多快捷功能使用体验再次提升
  • 链动 3+1 模式:重构商业增长逻辑的新引擎
  • html转成markdown(1.0.0)
  • 基于 Spring Boot 的登录功能实现详解