Android-复习重点
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、Android四大组件是什么(activity,service,content provider,broadcast receiver)
2、Activity生命周期方法有哪些不要与service的生命周期方法记混淆
(
onCreate():
当activity是被创建时候,会自动运行该方法。该方法做一些初始化动作,比如创建views,设置数据到list等等,该方法提供了一个Bundle类型的变量,该变量中有这个activity 以前的状态信息,前提是以前存过这些信息。这个方法执行完后执行的是onStart()方法;若在onCreate方法中加入finish()方法,onCreate下一个运行onDestroy方法
onRestart():
把activity从onStop状态唤醒时,会用onRestart方法,该方法优先于再次运行的onStart,运行完onRestart之后运行onStart。若在onRestart()方法中加入finish()语句,则还是会继续运行onStart及后面的状态方法直到onDestroy运行完
onStart():
当activity对用户可见时会调用onStart,当activity在前台显示时,会运行onResume;当activity还没在前台显示就被隐藏(停止状态)了会运行onStop(),比如在onStart方法中用了finish()方法的话,onStart()之后就会直接运行onStop->onDestroy。
onResume():
#
当activity开始与用户交互时,会调用onResume,并且为了用户操作此时该activity位于activity栈的顶部。经过某些操作后该方法执行完后执行的是onPause()
onPause():
当一个activity运行到onResume方法后,不管是这个activity要销毁还是要暂停或停止,都会调用该方法。这个方法之后有可能是onResume也有可能是onStop,若是在这个activity-A 中打开一个不完全覆盖这个activity-A的新activity-B,那么activity-A就会是onPause状态,当activity-B退出时,activity-A就直接运行onResume(前提是onPause的方法执行完了,否则会等onPause方法执行完后才运行onResume方法,所以不建议在这个方法中执行CPU密集的操作)。若是需要退出activity-A,那么下一个就会执行onStop。onPause()用于提交未保存发生变化了的持久化数据,及停止动画及其他其他比较消耗CPU的事件(比如广播接收器,传感器(比如GPS),或者消耗电量的资源),这是为了更好的运行新的activity onStop():
当这个activity完全看不见的时候,会调用onStop方法,因为另一个activity会调用onResume并且覆盖这个activity。以下三种情况都会使这个activity调用onStop()方法,第一种是一个新的activity被执行,第二种是一个已经存在的activity被切换到最前端,第三种是这个activity要被销毁。如果通过用户召回这个activity,那么会调用onRestart方法;若这个activity要被销毁,则调用onDestroy方法
onDestroy():
当activity销毁前会调用该方法,比如发生如下情况:activity调用了finish()方法来结束这个activity,或者因为系统为了节省空间而临时销毁这个activity,这两个情况可以通过isFinishing()方法判断
总结:
当用户自己退出程序的时候,建议在onStop方法中保存数据;
当用户打开一个新的activity的时候,建议通过onSaveInstanceState来保存数据;这里在网上看到很多人说应该放在onPause里保存,其实我觉得在打开新的一个activity的时候,或者将程序至于后台的时候,都会默认调用onSaveInstanceState方法,而且在这种暂停的状态下,Android的内存管理机制也不太会杀死这种状态的activity。而用onPause保存的时候,若是下一个执行onResume的方法的话,会影响速度,当然数据量小的话也感觉不出来。)
3、<
4、Back键与home键对Activity的影响有什么不同,哪个会销毁页面(back键
Android的程序无需刻意的去退出,当你一按下手机的back键的时候,系统会默认调用程序栈中最上层Activity的Destroy()方法来销毁当前Activity,当此Activity又被其它Activity 启动起来的时候,会重新调用OnCreate()方法进行创建,当栈中所有Activity都弹出结束后,应用也就随之结束了.如果说程序中存在service之类的,则可以在恰当的位置监听处理下也就可以了.
home键
Android程序的隐藏,当你按下手机的Home键的时候,系统会默认调用程序栈中最上层Activity的stop()方法,然后整个应用程序都会被隐藏起来,当你再次点击手机桌面上应用程序图标时,系统会调用最上层Activity的OnResume()方法,此时不会重新打开程序,而是直接进入,会直接显示程序栈中最上层的Activity.)
5、Android应用程序的目录结构的用途,assests与res文件夹的区别
(:不会在文件下生成相应的标记,存放到这里的资源在运行打包的时候都会打入程序安装
包中
:会在文件下生成标记,这里的资源会在运行打包操作的时候判断哪些被使用到了,没有被使用到的文件资源是不会打包到安装包中的。
在res文件夹下其实还可以定义一下目录:
res/anim:这里存放的是动画资源。
¥
res/xml:可以在Activity中使用getResource().getXML()读取这里的资源文件
res/raw:该目录下的文件可以直接复制到设备上,编译软件时,这里的数据不需要编译,直接加入到程序安装包中,使用方法是getResource().OpenRawResources(ID),其中参数ID的形式是)
6、Android中gen文件夹中最重要的是文件,它是系统自动生成的,不能手动修改。
7、文件中各类元素,如
8、Src values drawable layout 文件夹放什么(
1. src:存放所有的*.java源程序。
2. gen:为ADT插件自动生成的代码文件保存路径,里面的将保存所有的资源ID。
3. assets:可以存放项目一些较大的资源文件,例如:图片、音乐、字体等。
4. res:可以存放项目中所有的资源文件,例如:图片(*.png、*.jpg)、文本等。
5. res\drawable-hdpi:保存高分辨率图片资源,可以使用(id)可以获得资源类型。
;
6. res\drawable-ldpi:保存低分辩率图片资源,可以使用(id)可以获得资源类型。
7. res\drawable-mdpi:保存中等分辨率图片资源,可以使用(id)可以获得资源类型。
8. res\layout:存放所有的布局文件,主要是用于排列不同的显示组件,在Android程序中要读取此配置。
9. res\values:存放一些资源文件的信息,用于读取文本资源,在本文件夹之中有一些约定的文件名称:
·:定义数组数据;
·:定义表示颜色的数据;
·:定义尺度,可以使用()获得这些资源;
·:定义字符串,可以使用()或()方法获得这些资源;
·:定义显示的样式文件;
\raw:自定义的一些原生文件所在目录,像音乐、视频等文件格式,()方法可以获得这些资源。
;
11. res\xml:用户自定义的XML文件,所有的文件在程序运行时编译到应用程序之中,在程序运行时可以使用()方法获取。
12. res\anim:用于定义动画对象;
13. bin:生成apk的文件夹。)
9、常用xml属性及属性值的意思,如