四大组件: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. C++入门篇十一

    单例对象:为了让类只有一个实例,实例不需要自己释放掉 不管创建多少个实例对象进行访问,访问的都是同一个值 #include "pch.h" #include <iostrea ...

  2. vue中展示数据

    1.v-bind,直接把数据绑定进去了.*100是因为传过来的数据为数字0.3这样子,要转换成百分比 2.整个的数据再data中定义之后,就能在页面直接绑定,v-for,v-if等单独再设置.

  3. Uni-app事件处理

    事件表: Web事件 uni-app事件 click tap touchstart touchstart touchmove touchmove touchcancel touchcancel tou ...

  4. kafka Network

    Kafka network Processor SocketServer.Processor override def run() { startupComplete() try { while (i ...

  5. scrapy+mongodb

    我们都知道scrapy适合爬取大量的网站信息,爬取到的信息储存到数据库显然需要更高的效率,scrapy配合mongodb是非常合适的,这里记录一下如何在scrapy中配置mongodb. 文件结构 $ ...

  6. Spark SQL官网阅读笔记

    Spark SQL是Spark中用于结构化数据处理的组件. Spark SQL可以从Hive中读取数据. 执行结果是Dataset/DataFrame. DataFrame是一个分布式数据容器.然而D ...

  7. ansible字符串的处理

    ansible中字符串的处理 from_json json_query join select selectattr map list trim 列表和字典的处理 combine

  8. C#中的 隐式与显式接口实现

    在C#中,正常情况下使用接口的实现使用的是 隐式接口实现. public interface IParent1 { void Medthod(); } public class Child : IPa ...

  9. UOJ#104. 【APIO2014】Split the sequence 动态规划 斜率优化

    原文链接www.cnblogs.com/zhouzhendong/p/UOJ104.html 题解 首先证明一个结论:对于一种分割方案,分割的顺序不影响最终结果. 证明:对于树 a[x] 和 a[y] ...

  10. MockPlus原型设计介绍

    MockPlus原型设计介绍 在第八周的课堂上,王文娟老师在校园系统上发布了对于自行选择的原型设计软件进行资料查找以及自学的任务.因为之前的课程学习需要,我们已经大概掌握了原型设计软件Axure的使用 ...