扣丁学堂培训讲师整理android面试题(一)

2016-03-17 15:01:31 650浏览

        移动开发上岗形式让年轻人对于android开发技术充满了向往,扣丁学堂android培训讲师为读者整理了常规的企业对于android开发人才的面试考试题。让android开发人才进入企业更加容易。

扣丁学堂培训讲师整理android面试题

        扣丁学堂培训讲师整理android面试题:

        一、请描述一下Activity 生命周期。

        如下图所示。共有七个周期函数,按顺序分别是: onCreate(), onStart(), onRestart(), onResume(), onPause(),onStop(), onDestroy()。

        onCreate(): 创建Activity时调用,设置在该方法中,还以Bundle的形式提供对以前存储的任何状态的访问。

        onStart(): Activity变为在屏幕上对用户可见时调用。

        onResume(): Activity开始与用户交互时调用(无论是启动还是重新启动一个活动,该方法总是被调用。

        onPause(): Activity被暂停或收回cpu和其他资源时调用,该方法用户保护活动状态的,也是保护现场。

        onStop(): Activity被停止并转为不可见阶段及后续的生命周期事件时调用。

        onRestart(): Activity被重新启动时调用。该活动仍然在栈中,而不是启动新的Activity。

        1、完整生命周期: 即从一个Activity从出现到消失,对应的周期方法是从onCreate()到onDestroy()。

        2、可见生命周期: 当Activity处于可以用户看见的状态,但不一定能与用户交互时,将多次执行从onStart()到onStop()。

        3、前景生命周期: 当Activity处于Activity栈最顶端,能够与其他用户进行交互时,将多次执行从onResume()到onPause()。

        二、两个Activity之间跳转时必然会执行的是哪几个方法。

        两个Activity之间跳转必然会执行的是下面几个方法。

        onCreate()//在Activity生命周期开始时调用。

        onRestoreInstanceState()//用来恢复UI状态。

        onRestart()//当Activity重新启动时调用。

        onStart()//当Activity对用户即将可见时调用。

        onResume()//当Activity与用户交互时,绘制界面。

        onSaveInstanceState()//即将移出栈顶保留UI状态时调用。

        onPause()//暂停当前活动Activity,提交持久数据的改变,停止动画或其他占用GPU资源的东西,由于下一个Activity在这个方法返回之前不会resume,所以这个方法的代码执行要快。

        onStop()//Activity不再可见时调用。

        onDestroy()//Activity销毁栈时被调用的最后一个方法。

        三、横竖屏切换时候Activity的生命周期。

        1、不设置Activity的android: configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次。

        2、设置Activity的android: configChanges=“orientation”时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次。

        3、设置Activity的android: configChanges=“orientation|keyboardHidden”时,切屏不会重新调用各个生命周期,只会执行onConfiguration方法

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

        第一种方法,在styles.xml文件中,可以新建如下的类似Dialog的style。

        第二种方法,在AndroidManifest.xml中在需要显示为窗口的Activity中添加如下属性: android: theme=“@style/Theme.FloatActivity”即可。也可以直接添加对应需要展示为Dialog style的Activity的android: theme属性为android: theme=“@ android: style/Theme.Dialog”。

        五、两个Activity之间怎么传递数据?

        可以在Intent对象中利用Extra来传递存储数据。

        在Intent的对象请求中,使用putExtra(“键值对的名字”,”键值对的值”);在另外一个Activity中将Intent中的请求数据取出来:

        Intent intent = getIntent();

        String value = intent.getStringExtra(“testIntent”);

        六、怎么让在启动一个Activity是就启动一个service?

        首先定义好一个service,然后在Activity的onCreate里面进行连接并bindservice或者直接startService。

        七、 Activity怎么和service绑定,怎么在activity中启动自己对应的service?

        1、activity能进行绑定得益于Serviece的接口。为了支持Service的绑定,实现onBind方法。

        2、Service和Activity的连接可以用ServiceConnection来实现。需要实现一个新的ServiceConnection,重现onServiceConnected和OnServiceDisconnected方法,一旦连接建立,就能得到Service实例的引用。

        3、执行绑定,调用bindService方法,传入一个选择了要绑定的Service的Intent(显示或隐式)和一个你实现了的ServiceConnection的实例

        八、什么是Service以及描述下它的生命周期。Service有哪些启动方法,有什么区别,怎样停用Service?

        Android Service是运行在后台的代码,不能与用户交互,可以运行在自己的进程,也可以运行在其他应用程序进程的上下文里。需要通过某一个Activity或者Context对象来调用。Service有两个启动方法,分别是Context.startService()和Context.bindService()。如果在Service执行耗时的操作需要启动一个新线程来执行。

        Android Service只继承了onCreate(), onStart(),onDestroy()三个方法,当我们第一次启动Service时,先后调用onCreate(), onStart()这两个方法,当停止Service时,则执行onDestroy()方法时。如果Service已经启动了,当我们再次启动Service时,不会再执行onCreate()方法,而是直接执行onStart()方法。

        九、什么时候使用Service?

        比如播放多媒体的时候,用户启动了其他Activity,这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,再或者在后台记录你的地理信息位置的改变等等。

        十、请描述一下Intent 和 Intent Filter。

        Intent在Android操作系统中被翻译为”意图”,他是三种应用程序基本组件-Activity,Service和broadcast receiver之间相互激活的手段。在调用Intent名称时使用ComponentName也就是类的全名时为显示调用。这种方式一般用于应用程序的内部调用,因为你不一定会知道别人写的类的全名。而Intent Filter是指意图过滤,不出现在代码中,而是出现在android Manifest文件中,以的形式。(有一个例外是broadcast receiver的intentfilter是使用Context.registerReceiver()来动态设定的,其中intent filter也是在代码中创建的)

        一个intent有action,data,category等字段。一个隐式intent为了能够被某个intent filter接收,必须通过3个测试,一个intent为了被某个组件接收,则必须通过它所有的intent filter中的一个。

查看更多关于“Android培训资讯”的相关文章>>

标签:

热门专区

暂无热门资讯

课程推荐

微信
微博
15311698296

全国免费咨询热线

邮箱:codingke@1000phone.com

官方群:148715490

北京千锋互联科技有限公司版权所有   北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
京ICP备12003911号-6   Copyright © 2013 - 2019

京公网安备 11010802030908号