android经典面试题集锦

合集下载

android中高级面试题汇总+解析

android中高级面试题汇总+解析

android中高级面试题汇总+解析以下是一些Android中的高级面试题及其解析:1. 什么是Android的四大组件?答:Android的四大组件是活动(Activity)、服务(Service)、内容提供器(Content Provider)和广播接收器(Broadcast Receiver)。

它们是构建Android 应用程序的基本模块,各自负责不同的功能。

2. 请解释什么是Android的生命周期,并描述每个生命周期方法的用途。

答:Android的生命周期指的是一个活动(Activity)从创建、运行、销毁的整个过程。

生命周期涉及到多个方法,包括onCreate()、onStart()、onResume()、onPause()、onStop()、onDestroy()等。

每个方法在特定的时机被调用,用于执行特定的任务,例如初始化活动、暂停活动、恢复活动等。

3. 请解释什么是Fragment,以及与Activity的区别是什么?答:Fragment是一种可重用的UI组件,可以嵌入到Activity中,用于构建灵活的用户界面。

与Activity相比,Fragment具有更小的粒度和更强大的灵活性。

一个Activity可以包含多个Fragment,并且可以在运行时动态添加、替换或删除Fragment。

Fragment还可以共享数据和与其他Fragment通信。

4. 请解释什么是内存泄漏,并提供一些防止内存泄漏的方法。

答:内存泄漏指的是应用程序中的对象占用了内存,但在不再需要时没有被正确释放。

这可能导致内存消耗过大,最终导致应用程序崩溃或变得缓慢。

防止内存泄漏的一些方法包括:及时释放对象的引用、避免使用静态变量、避免匿名内部类的隐式引用、使用弱引用或软引用来持有对象等。

5. 请解释什么是依赖注入(Dependency Injection)?答:依赖注入是一种设计模式,用于解耦对象之间的依赖关系。

android面试题大全

android面试题大全

android面试题大全在职场中,技术面试是一个重要的环节。

对于Android开发者而言,面试过程中遇到各种各样的问题是难免的。

为了帮助大家更好地应对Android面试,本文将介绍一些常见的Android面试题,供大家参考。

一、Java相关问题在Android开发中,Java是一门十分重要的编程语言。

以下是一些与Java相关的面试题:1. 什么是Java?请简单介绍Java的特点和优势。

2. Java的基本数据类型有哪些?3. Java的封装和继承是什么?它们有什么区别?4. 什么是接口(Interface)?它和抽象类(Abstract Class)有什么区别?5. Java中的多态是什么?请简单描述多态的实现原理。

二、Android基础知识问题除了Java,还有一些关于Android基础知识的问题,例如:1. 什么是Android?请简单介绍Android的特点和优势。

2. 请解释Activity、Fragment和Service的概念以及它们之间的关系。

3. 什么是Intent?它有哪几种类型?4. 请解释Activity的生命周期,并且简要描述每个生命周期方法的作用。

5. 什么是RecyclerView?请简单介绍它的作用和使用方法。

三、Android开发常用框架问题在Android开发过程中,使用各种框架可以提高开发效率。

以下是一些与Android开发常用框架相关的面试题:1. 请简单介绍Retrofit框架,并描述它的优点和使用方法。

2. 什么是RxJava?它有什么作用?3. 请简要介绍MVP和MVVM架构,并举例说明它们在Android开发中的应用场景。

4. 请简单介绍Glide图片加载框架,并描述它与其他图片加载框架的比较优势。

5. 什么是ORM框架?请简单介绍一种常用的Android ORM框架。

四、Android性能优化问题在Android开发过程中,性能优化是一个重要的方面。

Android应用开发经典面试题

Android应用开发经典面试题

Android 应用开发经典面试题1、 Android 的四大组件是哪些,它们的作用?的四大组件是哪些,它们的作用?答:Activity :Activity 是Android 程序与用户交互的窗口,是Android 构造块中最基本的一种,它需要为保持各界面的状态,它需要为保持各界面的状态,做很多持久化的事情,做很多持久化的事情,做很多持久化的事情,妥善管理生命周期以及一些跳转逻妥善管理生命周期以及一些跳转逻辑service :后台服务于Activity ,封装有一个完整的功能逻辑实现,接受上层指令,完成相关的食物,定义好需要接受的Intent 提供同步和异步的接口提供同步和异步的接口Content Provider :是Android 提供的第三方应用数据的访问方案,可以派生Content Provider 类,对外提供数据,可以像数据库一样进行选择排序,屏蔽内部数据的存储细节,向外提供统一的借口模型,大大简化上层应用,对数据的整合提供了更方便的途径向外提供统一的借口模型,大大简化上层应用,对数据的整合提供了更方便的途径BroadCast Receiver :接受一种或者多种Intent 作触发事件,作触发事件,接受相关消息,接受相关消息,接受相关消息,做一些简单处做一些简单处理,转换成一条Notification ,统一了Android 的事件广播模型的事件广播模型2、 请介绍下Android 中常用的五种布局。

中常用的五种布局。

常用五种布局方式,分别是:FrameLayout (框架布局),LinearLayout (线性布局),AbsoluteLayout (绝对布局),RelativeLayout (相对布局),TableLayout (表格布局)。

一、FrameLayout :所有东西依次都放在左上角,会重叠,这个布局比较简单,也只能放一点比较简单的东西。

点比较简单的东西。

二、LinearLayout :线性布局,每一个LinearLayout 里面又可分为垂直布局(android:orientation=”vertical”)和水平布局(android:orientation=”horizontal” )。

Android开发工程师岗位面试题及答案(经典版)

Android开发工程师岗位面试题及答案(经典版)

Android开发工程师岗位面试题及答案1.请介绍一下您在Android开发方面的经验。

答:我在过去的X年中,一直从事Android应用开发工作。

我曾参与开发了多个项目,涵盖了各种领域,如电子商务、社交媒体以及物联网。

我熟悉AndroidSDK、Java和Kotlin编程语言,能够设计并优化用户界面、处理数据、进行性能调优等。

2.请解释一下MVC(Model View Controller)和MVVM (ModelView View Model)的架构模式。

答:MVC是一种将应用程序分为模型、视图和控制器的架构,用于分离数据、用户界面和应用逻辑。

MVVM是MVC的演变,引入了ViewModel层来处理视图和数据之间的通信,通过数据绑定实现更松散的耦合。

3.在Android中,什么是Content Provider?它的作用是什么?答:Content Provider用于在不同的应用程序之间共享数据。

它提供了一种标准的接口,允许应用访问和修改其他应用的数据,如联系人、媒体文件等。

4.如何在Android应用中处理不同屏幕尺寸和分辨率的适配?答:为了适配不同屏幕,可以使用不同的布局文件、尺寸单位和限定符。

例如,可以创建不同分辨率的资源文件夹,以确保应用在各种屏幕上都能正确显示。

5.请讲解一下Android中的线程和异步任务处理。

答:在Android中,主线程负责处理UI更新,而耗时操作应该在后台线程中执行,以避免阻塞主线程。

可以使用Thread、Handler、Async Task或RxJava等来管理线程和执行异步任务。

6.什么是Depend encyIn jection(依赖注入)?为什么在Android 开发中使用它?答:依赖注入是一种设计模式,用于将依赖关系从代码中分离出来,以提高可维护性和测试性。

在Android开发中,使用依赖注入可以更轻松地管理组件之间的依赖关系,例如使用Dagger框架。

安卓面试题及答案详解版

安卓面试题及答案详解版

安卓面试题及答案详解版1. 问题:什么是Android操作系统?答案: Android操作系统是一种基于Linux内核的开源操作系统,主要用于触屏移动设备,如智能手机和平板电脑。

它由Google公司开发并发布,允许设备制造商和开发者自由地修改和分发。

2. 问题:请解释Android的架构。

答案: Android架构从下到上分为四个层次:- 应用层:包含用户界面和应用程序。

- 应用框架层:提供应用程序开发接口(API)。

- 运行时环境层:包括Android核心库和Android运行时环境。

- Linux内核层:提供底层的硬件抽象层、内存管理、进程管理等功能。

3. 问题: Android应用是如何打包的?答案: Android应用通常使用APK(Android Package)格式进行打包。

APK文件是一个压缩文件,包含应用的代码、资源、资产、库和AndroidManifest.xml文件。

4. 问题:什么是Activity?答案: Activity是Android应用程序中的基本构建块,用于定义用户界面和用户交互。

每个Activity都是一个独立的屏幕,用户可以与之交互。

5. 问题:请解释Intent的概念。

答案: Intent是Android中用于请求操作的抽象描述符。

它可以用于启动Activity、启动服务或广播信息。

Intent可以显式地指定目标组件,也可以隐式地通过Intent Filter来匹配。

6. 问题:如何在Android中处理网络请求?答案:在Android中处理网络请求通常使用HTTP客户端库,如OkHttp或Retrofit。

这些库提供了简化的API来发送HTTP请求和接收响应。

7. 问题:解释Android中的Context对象。

答案: Context是Android中一个非常关键的类,它允许访问应用程序环境的全局信息。

Context可以用于启动Activity、获取资源、启动服务等。

Android面试题整理

Android面试题整理

Android常用面试简答题1、android 中得动画有哪几类,它们得特点与区别就是什么?参考答案:有两种,一种就是 Tween(补间)动画、还有一种就是 Frame(帧)动画。

Tween 动画,这种实现方式可以使视图组件移动、放大、缩小以及产生透明度得变化;另一种 Frame 动画,传统得动画方法,通过顺序得播放排列好得图片来实现,类似电影。

2、请简述Handler得机制原理参考答案:andriod 提供了 Handler 与 Looper 来满足线程间得通信。

Handler 先进先出原则。

Looper类用来管理特定线程内对象之间得消息交换(Message Exchange)。

1)Looper: 一个线程可以产生一个 Looper 对象,由它来管理此线程里得 Message Queue(消息队列)。

2)Handler: 您可以构造 Handler 对象来与 Looper 沟通,以便 push 新消息到 Message Queue 里;或者接收 Looper从 Message Queue 取出)所送来得消息。

3) Message Queue(消息队列):用来存放线程放入得消息。

4)线程:UI thread 通常就就是 main thread,而 Android 启动程序时会替它建立一个Message Queue。

3、说说mvc模式得原理,它在android中得运用参考答案:MVC 就是 Model,View,Controller 得缩写,从上图可以瞧出 MVC 包含三个部分:模型( Model )对象:就是应用程序得主体部分,所有得业务逻辑都应该写在该层。

视图( View )对象:就是应用程序中负责生成用户界面得部分。

也就是在整个MVC 架构中用户唯一可以瞧到得一层,接收用户得输入,显示处理结果。

控制器( Control )对象:就是根据用户得输入,控制用户界面数据显示及更新Model 对象状态得部分,控制器更重要得一种导航功能,想用用户触发得相关事件,交给 Model处理。

Android面试题汇总

Android面试题汇总

Android面试题汇总1、什么是Activity?2、请描述一下Activity 生命周期3、横竖屏切换时候Activity 的生命周期。

4、如何将一个Activity 设置成窗口的样式。

5、你后台的Activity 被系统回收怎么办?6、如何退出Activity?如何安全退出已调用多个Activity 的Application ?7、同一个程序,但不同的Activity 是否可以放在不同的Task 任务栈中?8、Activity 怎么和service 绑定,怎么在activity 中启动自己对应的service?9、什么是Service 以及描述下它的生命周期。

10、Service 有哪些启动方法,有什么区别,怎样停用Service?11、什么是IntentService?有何优点?12、什么时候使用Service?13、请描述一下Intent 和Intent Filter。

14、Intent 传递数据时,可以传递哪些类型数据?15、说说Activity,Intent,Service 是什么关系。

16、请描述一下Broadcast Receiver。

17、在manifest 和代码中如何注册和使用broadcast receiver18、请介绍下ContentProvider 是如何实现数据共享的。

19、为什么要用ContentProvider?它和sql 的实现上有什么差别?20、请介绍下Android 中常用的五种布局。

21、请介绍下Android 的数据存储方式。

22、谈谈UI 中,Padding 和Margin 有什么区别?23、widget 相对位置的完成在antivity 的哪个生命周期阶段实现。

24、请解释下在单线程模型中Message、Handler、Message Queue、Looper 之间的关系。

25、AIDL 的全称是什么?如何工作?能处理哪些类型的数据?26、对android 虚拟机的理解,包括内存管理机制垃圾回收机制。

Android面试题集合(含答案)

Android面试题集合(含答案)

Android面试题集合(含答案)云时代Android面试题集[键入文档副标题]目录第一章 Android最全面试题 71道题 (11)一、选择题 (11)二.填空和问答 (28)25. android中常用的五个布局是FrameLayout(单帧布局)、RelativeLyout(相对布局)、LinerLayout(线性布局)、TableLayout(表格布局)、AbsoluteLayout(绝对布局) (28)26. android 的四大组件是__Activity ServiceBrodcastReceiver ContentProvier。

(28)27. java.io包中的__ObjectInputStream_和_ObjectOutputStream_类主要用于对对象(Object)的读写。

(29)28. android 中service的启动方法有:__startService____bindService_ (29)29. activity一般会重载7个方法用来维护其生命周期,分别是:onCreate onStart onResume onPause onStop onDestroy onRestart.. 29 30. android的数据存储的方式有:SharedPreferences数据存储、文件存储、SQLite数据库存储数据、Contentprovider存储数据、网络存储数据 (29)31. 当启动一个 Activity 并且新的Activity 执行完后需要返回到启动它的Activity 数据,启动新Activity 的方法是_startActivityForResult(intent,Re questCode)_,用来处理返回数据的Activity回调函数是void onActivityResult(int requestCode,int resultCode,intentdata)_。

70道Android面试题

70道Android面试题

70道Android面试题70道Android面试题(大全)1.GC是什么? 为什么要有GC?GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。

2.XML包括哪些解释技术,区别是什么?DOM和SAXDOM将文档解析成一颗文档树,可在节点上进行遍历、增加、修改和删除。

一次性读入内存,对内存消耗大。

SAX至上而下解析文档,以事件进行驱动。

不会一次性读入内存,对内存消耗小,不能任意读取节点,并且不能对节点进行增加、修改和删除。

3.switch语句能否作用在byte上,能否作用在long上,能否作用在String上?switch能作用在byte、char、short和int上,JDK1.7后可以作用在String上。

4."=="和equals方法究竟有什么区别?==和equals都可以比较地址。

==是运算符,equals是方法,方法可以通过重写改变其行为,如String的equals就是比较字符串内容。

5.构造方法能否被重写和重载?构造方法不能被重写但是能被重载。

6.面向对象的特征有哪些?封装、继承、多态和抽象。

7.抽象类和接口的区别?1).抽象类是abstract class修饰,接口是interface修饰。

2).抽象类可以有任意类型的属性,接口只能有静态常量修饰的属性。

3).抽象类可以有普通方法和抽象法方法,接口的方法都是抽象方法。

4).抽象类和接口都不能实例化,但是抽象类有构造方法,接口没有构造方法。

5).抽象类只能单根继承,接口可以多重实现。

8.内部类可以引用它的包含类的成员吗?有没有什么限制?可以引用。

如果需要指定当前类时要用外部类.this来引用。

android开发面试题目(3篇)

android开发面试题目(3篇)

第1篇第一部分:Android基础1. Android开发环境搭建- 请简要描述Android开发环境搭建的步骤,包括安装Android Studio、配置SDK、模拟器等。

2. Android系统架构- 请简述Android系统的架构,包括四大组件(Activity、Service、BroadcastReceiver、ContentProvider)的作用和相互关系。

3. Activity生命周期- 请描述Activity的生命周期方法,包括onCreate、onStart、onResume、onPause、onStop、onDestroy等,并说明它们在何时被调用。

4. Intent- 请解释Intent的概念和作用,并说明如何创建和使用Intent进行组件间的通信。

5. Service- 请描述Service的生命周期方法,并说明如何创建一个前台Service和后台Service。

6. BroadcastReceiver- 请解释BroadcastReceiver的概念,并说明如何注册、发送和接收广播。

7. ContentProvider- 请解释ContentProvider的概念,并说明如何实现数据的共享。

8. AndroidManifest.xml- 请解释AndroidManifest.xml文件的作用,并列举其中需要配置的重要元素。

9. Android布局- 请描述几种常见的布局方式,如线性布局(LinearLayout)、相对布局(RelativeLayout)、帧布局(FrameLayout)等。

10. Android资源- 请解释Android资源的概念,并说明如何管理字符串资源、图片资源等。

第二部分:Java基础1. Java基本语法- 请简述Java的基本语法,包括变量、数据类型、运算符等。

2. 面向对象编程- 请解释面向对象编程的概念,并说明如何实现类的封装、继承和多态。

android软件测试面试题及答案

android软件测试面试题及答案

android软件测试面试题及答案android软件测试面试题及答案(一)1、 Android的四大组件是哪些,它们的作用?答:Activity:Activity是Android程序与用户交互的窗口,是Android构造块中最基本的一种,它需要为保持各界面的状态,做很多持久化的事情,妥善管理生命周期以及一些跳转逻辑service:后台服务于Activity,封装有一个完整的功能逻辑实现,接受上层指令,完成相关的食物,定义好需要接受的Intent提供同步和异步的接口Content Provider:是Android提供的第三方应用数据的访问方案,可以派生ContentProvider类,对外提供数据,可以像数据库一样进行选择排序,屏蔽内部数据的存储细节,向外提供统一的借口模型,大大简化上层应用,对数据的整合提供了更方便的途径BroadCast Receiver:接受一种或者多种Intent作触发事件,接受相关消息,做一些简单处理,转换成一条Notification,统一了Android的事件广播模型2、请介绍下Android中常用的五种布局。

常用五种布局方式,分别是:FrameLayout(框架布局),LinearLayout (线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局)。

一、FrameLayout:所有东西依次都放在左上角,会重叠,这个布局比较简单,也只能放一点比较简单的东西。

二、LinearLayout:线性布局,每一个LinearLayout里面又可分为垂直布局(android:orientation=vertical)和水平布局(android:orientation=horizontal )。

当垂直布局时,每一行就只有一个元素,多个元素依次垂直往下;水平布局时,只有一行,每一个元素依次向右排列。

三、AbsoluteLayout:绝对布局用X,Y坐标来指定元素的位置,这种布局方式也比较简单,但是在屏幕旋转时,往往会出问题,而且多个元素的时候,计算比较麻烦。

100道android面试题

100道android面试题

1.作用域public,protected,private,以及不写时的区别答:区别如下:作用域当前类同一package 子孙类其他packagepublic √ √ √ √protected √ √ √ ×friendly √ √ × ×private √ × × ×不写时默认为friendly2. ArrayList和V ector的区别答:就ArrayList与Vector主要从二方面来说.一.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的二.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半3. HashMap和Hashtable的区别一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java1.2引进的Map接口的一个实现二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的三.值:只有HashMap可以让你将空值作为一个表的条目的key或value4. 多线程有几种表示方法,都是什么?同步有几种实现方法,都是什么?答:多线程有两种实现方法,分别是继承Thread类与实现Runnable接口同步的实现方面有两种,分别是synchronized,wait与notify5. x=1,y=2,z=3;计算:y+=z--/++x答:y=36.String是最基本的数据类型吗?答:基本数据类型包括byte、int、char、long、float、double、boolean 和short。

.7. int 和Integer 有什么区别答:Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。

Int 是java的原始数据类型,Integer是java为int提供的封装类8. String 和StringBuffer的区别答:JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。

android面试题及答案

android面试题及答案

android面试题及答案一、Activity 生命周期相关1. 请简述Activity的生命周期,并解释每个状态的含义。

- Activity生命周期主要包括 onCreate(), onStart(), onResume(), onPause(), onStop(), 和 onDestroy() 方法。

onCreate() 在Activity第一次创建时调用,用于初始化界面和数据。

onStart() 当Activity对用户可见时调用,表示Activity已经部分准备好与用户交互。

onResume() 当Activity准备与用户交互时调用,此时Activity处于前台。

onPause() 当Activity失去焦点,但未完全退出时调用,用于保存数据和清理资源。

onStop() 当Activity完全不再显示在屏幕上时调用,释放资源。

onDestroy() 当Activity被系统销毁时调用,用于做最后的清理工作。

2. Activity A跳转到Activity B,再按返回键,生命周期如何调用? - 当从Activity A跳转到Activity B时,Activity A的onPause()会被调用,然后是onStop(),而Activity B会依次调用onCreate(),onStart(),onResume()。

按返回键从Activity B返回到Activity A时,Activity B会依次调用onPause()和onStop(),Activity A则会依次调用onRestart(), onStart()和onResume()。

二、Intent 相关1. 请解释Intent的基本作用及其使用场景。

- Intent是Android中用于组件间通信的一种机制,它可以用于启动Activity,Service,发送广播等。

常见的使用场景包括从一个Activity启动另一个Activity,或者向Service发送数据。

Android面试题集合(含答案)

Android面试题集合(含答案)

目录第一章An droid 最全面试题71道题 (4)一、选择题4二. 填空和问答 (11)25. an droid中常用的五个布局是FrameLayout(单帧布局)、RelativeLyout(相对布局)、云时代An droid面试题集[键入文档副标题]LinerLayout(线性布局)、TableLayout(表格布局)、AbsoluteLayout(绝对布局) .. 1126. an droid 的四大组件是Activity Service BrodcastReceiver ContentProvier。

(12)27. java.io 包中的ObiectlnputStream 禾口ObiectOutputStream 类主要用于对对象(Object)的读写。

(12)28. an droid 中service 的启动方法有:_startService bi ndService (12)29. activity 一般会重载7个方法用来维护其生命周期,分别是:on Create on StartonResume onPause onStop onDestroy onRestart (12)30. an droid的数据存储的方式有:SharedPrefere nces数据存储、文件存储、SQLite数据库存储数据、Contentprovider存储数据、网络存储数据 (12)31. 当启动一个Activity 并且新的Activity 执行完后需要返回到启动它的Activity数据,启动新Activity 的方法是startActivityForResult(intent,RequestCode),用来处理返回数据的Activity 回调函数是void onActivityResult(int requestCode,intresultCode.intent data)_。

(13)33. 下面程序运行的结果是:—_。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

android经典面试题集锦1. 什么是Activity?四大组件之一,一般的,一个用户交互界面对应一个activitysetContentView() ,// 要显示的布局, activity 是Context的子类,同时实现了window.callback和keyevent.callback, 可以处理与窗体用户交互的事件.button.setOnclickLinstener{}我开发常用的的有ListActivity , PreferenceActivity ,TabAcitivty等…如果界面有共同的特点或者功能的时候,还会自己定义一个BaseActivity.进度对话框的显示与销毁doubanservice2. 请描述一下Activity 生命周期。

生命周期描述的是一个类从创建(new出来)到死亡(垃圾回收)的过程中会执行的方法..在这个过程中会针对不同的生命阶段会调用不同的方法Activity从创建到销毁有多种状态,从一种状态到另一种状态时会激发相应的回调方法,这些回调方法包括:oncreate ondestroy onstop onstart onresume onpause其实这些方法都是两两对应的,onCreate创建与onDestroy销毁;onStart可见与onStop不可见;onResume可编辑(即焦点)与onPause;对话框的弹出, Activity.this这6个方法是相对应的,那么就只剩下一个onRestart方法了,这个方法在什么时候调用呢?答案就是:在Activity被onStop后,但是没有被onDestroy,在再次启动此Activity 时就调用onRestart(而不再调用onCreate)方法;如果被onDestroy了,则是调用onCreate方法。

最后讲自己项目中的经验,比如说豆瓣客户端每次进入某个界面的时候都要看到最新的数据,这个刷新列表的操作就放在onStart()的方法里面.fillData() 这样保证每次用户看到的数据都是最新的.多媒体播放, 播放来电话. onStop() 视频, 视频声音设置为0 , 记录视频播放的位置mediaplayer.pause();onStart() 根据保存的状态恢复现场. mediaplayer.start();在读文档的时候还发现activity还有两个方法onPostResume() 和OnPostCreate()这两个生命周期的方法,不过开发的时候没有用到过.3. 两个Activity之间跳转时必然会执行的是哪几个方法。

一般情况比如说有两个activity,分别叫A,B ,当在A里面激活B组件的时候, A 会调用onPause()方法,然后B 调用onCreate() ,onStart(), OnResume() ,这个时候B覆盖了窗体, A会调用onStop()方法. 如果B呢是个透明的,或者是对话框的样式, 就不会调用onStop()方法4. 横竖屏切换时候Activity的生命周期。

这个生命周期跟清单文件里的配置有关系1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期默认首先销毁当前activity,然后重新加载2、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法游戏开发中, 屏幕的朝向都是写死的.5. 如何将一个Activity设置成窗口的样式。

可以自定义一个activity的样式,详细见手机卫士的程序详细信息android:theme="@style/FloatActivity"E:\day9\mobilesafe\res\values\style6. 你后台的Activity被系统回收怎么办?如果后台的Activity由于某原因被系统回收可了,如何在被系统回收之前保存当前状态?除了在栈顶的activity,其他的activity都有可能在内存不足的时候被系统回收,一个activity越处于栈底,被回收的可能性越大.protected void onSaveInstanceState(Bundle outState) {super.onSaveInstanceState(outState);outState.putLong("id", 1234567890);}public void onCreate(Bundle savedInstanceState) {//判断savedInstanceState是不是空.//如果不为空就取出来super.onCreate(savedInstanceState);}7. 如何退出Activity?如何安全退出已调用多个Activity的Application?退出activity 直接调用finish () 方法 . //用户点击back键就是退出一个activity退出activity 会执行onDestroy()方法 .1、抛异常强制退出:该方法通过抛异常,使程序Force Close。

验证可以,但是,需要解决的问题是,如何使程序结束掉,而不弹出Force Close 的窗口。

//安全结束进程android.os.Process.killProcess(android.os.Process.myPid());2、记录打开的Activity:每打开一个Activity,就记录下来。

在需要退出时,关闭每一个Activity即可。

List<Activity> lists ; 在application 全集的环境里面lists = new ArrayList<Activity>();lists.add(activity);for(Activity activity: lists){activity.finish();}3、发送特定广播:在需要结束应用时,发送一个特定的广播,每个Activity收到广播后,关闭即可。

//给某个activity 注册接受接受广播的意图registerReceiver(receiver, filter)//如果过接受到的是关闭activity的广播就调用finish()方法把当前的activity finish()掉4、递归退出在打开新的Activity时使用startActivityForResult,然后自己加标志,在onActivityResult中处理,递归关闭。

上面是网上的一些做法.其实可以通过intent的flag 来实现..intent.setFlag(FLAG_ACTIVITY_CLEAR_TOP)激活一个新的activity,然后在新的activity的oncreate方法里面finish掉.Intent intent = new Intent(this,B.class);intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);局限性:所有的activity的启动模式都要是默认的启动模式讲一讲你对activity的理解把上面的几点用自己的心得写出来8. service是否在main thread中执行, service里面是否能执行耗时的操作?默认情况,如果没有显示的指定service所运行的进程, Service和activity是运行在当前app所在进程的main thread(UI主线程)里面service里面不能执行耗时的操作(网络请求,拷贝数据库,大文件)在子线程中执行new Thread(){}.start();特殊情况,可以在清单文件配置service 执行所在的进程,让service在另外的进程中执行9. 两个Activity之间怎么传递数据?基本数据类型可以通过. Intent 传递数据extras.putDouble(key, value)intent.putExtra(name, value)// 通过intent putExtra 方法基本数据类型都传递Bundle bundle = new Bundle();bumdle.putShort(key, value);intent.putExtras(bundle);intent.putExtras(bundle)获取到激活他的getIntent();Intent intent = getIntent();Bundle bundle = intent.getExtras();intent.getStringExtra("key","value");intent.getBooleanExtra("key","value")Application 全局里面存放对象,自己去实现自己的application的这个类,基础系统的application , 每个activity都可以取到让对象实现implements Serializable 接口把对象存放到文件上.让类实现Serializable 接口,然后可以通过ObjectOutputStream //对象输出流File file = new File("c:\\1.obj");FileOutputStream fos = new FileOutputStream(file);ObjectOutputStream oos = new ObjectOutputStream(fos);Student stu = new Student();stu.setId("10001");stu.setName("zs");oos.writeObject(stu);FileInputStream fis = new FileInputStream(file);ObjectInputStream ois = new ObjectInputStream(fis);Student stu1 = (Student) ois.readObject();System.out.println(stu1.getName());Parcelable 和SerializableParcelable 把对象序列化到android操作系统的一块公用的内存空间文件/网络intent.setData(Uri)Uri.fromFile(); //大图片的传递contentResolver.getInputStream(url);10. 怎么让在启动一个Activity是就启动一个service?在activity的onCreate()方法里面startService();11. 同一个程序,但不同的Activity是否可以放在不同的Task任务栈中?比方说在激活一个新的activity时候, 给intent设置flagIntent的flag添加FLAG_ACTIVITY_NEW_TASK这个被激活的activity就会在新的task栈里面…Intent intent = new Intent(A.this,B.class);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(intent);12. Activity怎么和service绑定,怎么在activity中启动自己对应的service?startService() 一旦被创建调用着无关没法使用service里面的方法bindService () 把service 与调用者绑定,如果调用者被销毁, service会销毁bindService() 我们可以使用service 里面的方法bindService(). 让activity能够访问到service里面的方法构建一个intent对象,Intent service = new Intent(this,MyService.class);通过bindService的方法去启动一个服务,bindService(intent, new MyConn(), BIND_AUTO_CREATE); ServiceConnection 对象(重写onServiceConnected和OnServiceDisconnected方法) 和BIND_AUTO_CREATE.private class myconn implements ServiceConnection{public void onServiceConnected(ComponentName name, IBinder service) { // TODO Auto-generated method stub//可以通过IBinder的对象去使用service里面的方法}public void onServiceDisconnected(ComponentName name) {// TODO Auto-generated method stub}13. 14 .什么是Service以及描述下它的生命周期。

相关文档
最新文档