Android复习重点培训资料.docx

上传人:b****3 文档编号:1422787 上传时间:2022-10-22 格式:DOCX 页数:10 大小:104.42KB
下载 相关 举报
Android复习重点培训资料.docx_第1页
第1页 / 共10页
Android复习重点培训资料.docx_第2页
第2页 / 共10页
Android复习重点培训资料.docx_第3页
第3页 / 共10页
Android复习重点培训资料.docx_第4页
第4页 / 共10页
Android复习重点培训资料.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

Android复习重点培训资料.docx

《Android复习重点培训资料.docx》由会员分享,可在线阅读,更多相关《Android复习重点培训资料.docx(10页珍藏版)》请在冰豆网上搜索。

Android复习重点培训资料.docx

Android复习重点培训资料

 

Android-复习重点

1、Android四大组件是什么?

(activity,service,contentprovider,broadcastreceiver)

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、Back键与home键对Activity的影响有什么不同,哪个会销毁页面?

(back键

Android的程序无需刻意的去退出,当你一按下手机的back键的时候,系统会默认调用程序栈中最上层Activity的Destroy()方法来销毁当前Activity,当此Activity又被其它Activity启动起来的时候,会重新调用OnCreate()方法进行创建,当栈中所有Activity都弹出结束后,应用也就随之结束了.如果说程序中存在service之类的,则可以在恰当的位置监听处理下也就可以了.

home键

Android程序的隐藏,当你按下手机的Home键的时候,系统会默认调用程序栈中最上层Activity的stop()方法,然后整个应用程序都会被隐藏起来,当你再次点击手机桌面上应用程序图标时,系统会调用最上层Activity的OnResume()方法,此时不会重新打开程序,而是直接进入,会直接显示程序栈中最上层的Activity.)

4、Android应用程序的目录结构的用途,assests与res文件夹的区别

(1.assets:

不会在R.java文件下生成相应的标记,存放到这里的资源在运行打包的时候都会打入程序安装包中

2.res:

会在R.java文件下生成标记,这里的资源会在运行打包操作的时候判断哪些被使用到了,没有被使用到的文件资源是不会打包到安装包中的。

在res文件夹下其实还可以定义一下目录:

res/anim:

这里存放的是动画资源。

res/xml:

可以在Activity中使用getResource().getXML()读取这里的资源文件

res/raw:

该目录下的文件可以直接复制到设备上,编译软件时,这里的数据不需要编译,直接加入到程序安装包中,使用方法是getResource().OpenRawResources(ID),其中参数ID的形式是R.raw.XXX.)

5、Android中gen文件夹中最重要的是R.java文件,它是系统自动生成的,不能手动修改。

6、AndroidManifest.xml文件中各类元素,如,同层次的元素位置,元素属性是否必须设置等。

7、Srcvaluesdrawablelayout文件夹放什么(

1.src:

存放所有的*.java源程序。

2.gen:

为ADT插件自动生成的代码文件保存路径,里面的R.java将保存所有的资源ID。

3.assets:

可以存放项目一些较大的资源文件,例如:

图片、音乐、字体等。

4.res:

可以存放项目中所有的资源文件,例如:

图片(*.png、*.jpg)、文本等。

5.res\drawable-hdpi:

保存高分辨率图片资源,可以使用Resources.getDrawable(id)可以获得资源类型。

6.res\drawable-ldpi:

保存低分辩率图片资源,可以使用Resources.getDrawable(id)可以获得资源类型。

7.res\drawable-mdpi:

保存中等分辨率图片资源,可以使用Resources.getDrawable(id)可以获得资源类型。

8.res\layout:

存放所有的布局文件,主要是用于排列不同的显示组件,在Android程序中要读取此配置。

9.res\values:

存放一些资源文件的信息,用于读取文本资源,在本文件夹之中有一些约定的文件名称:

·arrays.xml:

定义数组数据;

·colors.xml:

定义表示颜色的数据;

·dimens.xml:

定义尺度,可以使用Resources.getDimension()获得这些资源;

·strings.xml:

定义字符串,可以使用Resources.getString()或Resources.getText()方法获得这些资源;

·styles.xml:

定义显示的样式文件;

10.res\raw:

自定义的一些原生文件所在目录,像音乐、视频等文件格式,Resources.getRawResource()方法可以获得这些资源。

11.res\xml:

用户自定义的XML文件,所有的文件在程序运行时编译到应用程序之中,在程序运行时可以使用Resources.getXML()方法获取。

12.res\anim:

用于定义动画对象;

13.bin:

生成apk的文件夹。

8、常用xml属性及属性值的意思,如

android:

layout_width指定组件布局宽度

layout_height指定组件布局高度

android:

text指定控件当中显示的文字

android:

hint来设置当EditText内容为空时显示的文本,这个文本只在EditText为空时显示,你输入字符的时候就消失了,

android:

autoText如果设置,将自动执行输入值的拼写纠正

android:

textSize指定控件当中字体的大小

wrap_content表示根据控件中的内容来确定,也就是说,在满足完全显示控件内容的情况下,把宽度和高度设置为最小。

fill_parent表示尽可能地充满父控件的空间,如果当前控件是最上层,就是充满整个屏幕

9、从当前Activity启动另一个Activity,可以使用哪两种方法?

有什么区别?

显式Intent:

通过指定Intent组件名称来实现的,它一般用在知道目标组件名称的前提下,一般是在相同的应用程序内部实现的。

隐式Intent:

通过IntentFilter来实现的,它一般用在没有明确指出目标组件名称的前提下,一般是用于在不同应用程序之间。

10、Intent的作用:

实现页面跳转,连接四大组件的桥梁

11、ContentProvider的作用:

实现应用程序之间的数据共享

12、退出activity的方法(finishonstop抛出异常强制退出)

13、AlertDialog怎样创建?

(newAlertDialog.builder),怎样显示?

(show),设置“确认”按钮的方法setPositivebutton设置“取消”按钮的方法setNegativeButton

14、Service生命周期的方法:

onCreateonStart,第一次启动时会执行什么,若已经启动了,再次启动Service会执行哪些方法(当第一次启动的时候先后调用onCreate()和onStart()方法,如果service已经启动,只会执行onStart()方法,不在执行onCreate()方法

15、Service的两种启动方式分别对应哪两个方法?

停止呢?

(有两种方式启动一个Service,他们对Service生命周期的影响是不一样的。

1通过startServiceService会经历onCreate->onStartstopService的时候直接onDestroy如果是调用者自己直接退出而没有调用stopService的话,Service会一直在后台运行。

下次调用者再起来可以stopService。

2通过bindServiceService只会运行onCreate,这个时候服务的调用者和服务绑定在一起调用者退出了,Srevice就会调用onUnbind->onDestroyed

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 生产经营管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1