四大组件:activity、service、content provider、broadcast receiver

【一】Activity

  1.生命周期

  onCreate:表示activity正在被创建(此方法中可以做一些初始化工作)

  onRestart:表示activity正在被重新启动,当前activity由不可见变为可见状态时,会被调用

  onStart:表示activity正在被启动,这时activity已经可见了,但是没有出现在前台,无法与用户交互

  onResume:表示activity已经可见了,位于前台,可以与用户交互了

  onPause:表示activity正在停止

  onstop:

  ondestory:

 2.异常情况下生命周期分析

  activity在异常情况下终止时,系统会调用onSaveInstanceState来保持当前activity的状态;

  activity在重新创建后,系统胡调用onRestoreInstanceState,并且把activity销毁时所保存的Bundle对象作为参数同时传给onCreate和onRestoreInstanceState方法

3.activity的加载模式

  standard:默认模式

  singleTop:栈顶模式(activity在栈顶就复用,不在就重建)  适应的场景:推送消息的展示页

  singleTask:栈内复用模式  栈中不会有重复的instance,重用时会干掉头上所有的activity  适应的场景:程序的入口,用在启动页和首页

  singleInstance:单实例模式  重新开辟新的任务栈  适应的场景:与程序分离的页面(类似闹钟的提示)

【二】广播

  广播可以来自系统,还可以来自其他app;

  广播分为有序广播和无序广播;

  Intent是用来发送广播的,BroadcastReceiver是来接受广播的

  动态注册必须等到app启动后才能收到广播,静态注册可以实现未启动应用也可以接受广播;

  

【三】service

  1.清单文件的属性

  exported:代表是否能被其他应用隐式调用

  process:是否需要在单独的进程中运行

  enable:是否可以被系统实例化

  2.如何保证服务不被杀死

  因内存不足杀死服务:可将onStartCommand方法的返回值设置为Start_sticky,表示服务在内存资源紧张时被杀死后,会在内存资源足够时再恢复;也可以将服务设置为前台服务,拥有较高的比较级,这样在内存资源紧张时也不会被杀掉

  用户手动干预杀死服务:非强制性关闭服务,会走生命周期,onDestory方法会被调用,可以在此方法中发送广播,重新启动(为了程序更健全,我们可开两个服务,相互监听,相互启动,服务A监听B的广播来启动B,服务B监听A的广播来启动A)

  3.服务有两种状态:启动状态和绑定状态

  startservice和bindservice的区别:当服务是started状态时,其生命周期与启动他的组件无关,并且可以在后台无限期运行,即使启动服务的组件被销毁,因此服务需要在完成任务后,调用stopself方法停止,或有其他组件调用stopservice方法停止;当服务是binded状态时,调用者与服务绑定在了一起,调用者一旦退出,服务也就终止。  

android 2018 面试题的更多相关文章

  1. Android&Java面试题大全—金九银十面试必备

    声明本文由作者:Man不经心授权转载,转载请联系原文作者原文链接:https://www.jianshu.com/p/375ad14096b3, 类加载过程 Java 中类加载分为 3 个步骤:加载. ...

  2. 【Android】一道Android OpenGL笔试题

    一道Android OpenGL笔试题 SkySeraph May. 5th 2016 Email:skyseraph00@163.com 更多精彩请直接访问SkySeraph个人站点:www.sky ...

  3. Android开发面试经——4.常见Android进阶笔试题(更新中...)

      Android开发(29)  版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http:/ ...

  4. Android 简历+面试题 汇总

    1.教你写简历 1.1.你真的会写简历吗? 1.2.80%以上简历都是不合格的 1.3.推荐两个技术简历模板 1.4.关于程序员求职简历 1.5.程序员简历模板列表 2.面试题 2.1.国内一线互联网 ...

  5. android 常见面试题以及答案

    http://blog.csdn.net/bobo1808/article/details/6783344 1.    请描述下Activity的生命周期.2.    如果后台的Activity由于某 ...

  6. Android开发面试经——2.常见Android基础笔试题

     标签: androidAndroid基础Android面试题Android笔试题 2015-03-12 15:04 3361人阅读 评论(3) 收藏 举报  分类: Android开发(29)  版 ...

  7. Android采访开发——2.通用Android基础笔试题

    注意finddreams博客: http://blog.csdn.net/finddreams/article/details/44219231 正值跳槽的热季.整理一下Android面试中最常考的笔 ...

  8. 网易android开发面试题及心得

    前几天面试网易android开发,总体感觉问题难度一般.怪我自己没有好好梳理知识,尤其是基础,后面就没消息了... 笔试: 1.描述Activity 生命周期 2.什么是ANR,如何规避? 3.描述a ...

  9. Android高级工程师面试题整理

    这些题目是网友去百度.小米.乐视.美团.58.猎豹.360.新浪.搜狐等一线互联网公司面试被问到的题目.熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率. 主要分为以下几部分: (1)java ...

随机推荐

  1. webpack4学习笔记

    执行webpack-dev-server的时候不会自动生成dist打包目录,怪不得公司的项目里面都没用到webpack-dev-server呢 执行webpack的时候会生成dist目录 watch的 ...

  2. QT删除非空文件夹

    int choose; choose = QMessageBox::warning(NULL,"warning","确定删除该文件?",QMessageBox: ...

  3. UVA1449 Dominating Patterns

    UVA1449 Dominating Patterns 题目描述 有N个由小写字母组成的模式串以及一个文本串T.每个模式串可能会在文本串中出现多次.你需要找出哪些模式串在文本串T中出现的次数最多. 输 ...

  4. centos6.6 minimal cannot found a valid baseurl for repo :base

    网上找了很久,说什么NDS1=8.8.8.8,DNS2=4.2.2.2 也有说改ifcfg-eth0文件的 总之我都改了,但都没用 现在我把我修改的流程发上来 1.https://blog.csdn. ...

  5. datatable 给某一列添加title属性

    简单描述:采用datatable拼接的表格,没有title属性,嗯就是这个情况,直接上代码 代码: //js代码$("#toAdd").click("click" ...

  6. TLS1.3&TLS1.2形式化分析

    本博客是对下面博客连接上的原文进行梳理+自己在其他方面资料做个整理 https://blog.csdn.net/andylau00j/article/details/79269499 https:// ...

  7. nginx 配置访问 静态文件

    server { listen       7777; server_name  crpapitest.shunshunliuxue.com; index index.html index.htm i ...

  8. js 如何将dom转换为 图片(base64)

    1.引入js <script src="https://cdn.bootcss.com/html2canvas/0.4.1/html2canvas.js"></s ...

  9. pip命令

    安装包 pip install django   #最新版本 pip install django==1.11.7 #指定版本 pip install django>=1.11.7 #最小版本 ...

  10. 【java】-- java反射机制

    参考文章:https://blog.csdn.net/sinat_38259539/article/details/71799078    https://blog.csdn.net/wanderlu ...