android 测试题 答案_第1页
android 测试题 答案_第2页
android 测试题 答案_第3页
android 测试题 答案_第4页
android 测试题 答案_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一天:1,对于如下的一些映射关系,当请求URL为”/xxx/yyy/a.do”时,哪个Servlet会响应()Servlet1 映射到 /abc/*Servlet2 映射到 /*Servlet3 映射到 /abcServlet4映射到*.do(10分)A、Servlet1B、Servlet2C、Servlet3D、Servlet4参考答案:B答案说明:url-pattern匹配规则:完全匹配:以“/”开头,以字母(非“*”)结束   如:<url-pattern>/test/list.do&

2、lt;/url-pattern>目录匹配:以“/”开头且以“/*”结尾   如:<url-pattern>/test/*</url-pattern><url-pattern>/*</url-pattern>扩展名匹配:以“*.”开头,以扩展名结束   如:<url-pattern>*.do</url-pattern> “/” 用来表明对应的Servlet为应用默认的Servlet。在这种情况下Servlet路径是请求的URI去掉上下文路径

3、并且路径信息为null。2、下列选项中,哪个方法可以准确的获取请求页面的一个文本框的输入(文本框的名称为name) ()。(10分)A、request.getParamter(name)B、request.getParamter(“name”)C、request.getParamterValues(name)D、request.getParamterValues(“name”)参考答案:B答案说明:request.getParameter("name")   根据name获取value值request.getParameterName

4、s("name")   根据name获取一组值,如多选框3、在web.xml中下面哪一个标签标示servlet的URL映射()(10分)A、mappingB、servlet-urlC、url-mappingD、servlet-mapping参考答案:D答案说明:<servlet-mapping><servlet-name>HelloServlet</servlet-name><url-pattern>/hello</url-pattern></servlet-mapping>

5、;多选题 共2题满分:20分4、下列选项中,说法正确的是()。(10分)A、客户端每次请求都会创建一个request 对和 response对象 并且把这2个对象传递到doGet方法和doPost方法中B、在浏览器的地址栏输入地址,点击回车,这个过程称为一次请求C、HttpServletResponse,是一个接口,父接口是ServletD、服务器端根据客户端的请求,返回数据到浏览器中进行显示,这个过程称为一次响应参考答案:A,B,D答案说明:C错误原因:HttpServletResponse,是一个接口,父接口是ServletResponse5、下列选项中,()是http相应包含的组成部分。

6、(10分)A、响应体B、响应头C、响应尾D、响应行参考答案:A,B,D答案说明:HttpServletResponse,是一个接口,父接口是ServletResponse,代表响应对象。http的响应包含三部分组成:第一部分:响应行l第二部分:响应头l第三部分:响应体判断题 共0题满分:0分填空题 共1题满分:10分6、_是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。(10分)参考答案:Servlet答案说明:Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。 它担当客户请求(Web浏览器或

7、其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。 Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。简答题 共1题满分:20分7、请简述HttpServletRequest实例的getContextPath() 方法,getRequestURL()方法和getParameter("name") 方法的作用。(20分)参考答案:request.ge

8、tContextPath()   获取根路径;request.getRequestURL();   获取请求的url;request.getParameter("name")   根据name获取value值;答案说明:request对象是请求对象。请求一次就创建一个request对象,并且存储了请求的信息。所以在表单提交中,我们可以通过request对象获取用户提交的所有信息。HttpServletRequest类中的常用方法:request.getContextPath()

9、0;  获取根路径。        request.getParameter("name")   根据name获取value值request.getParameterNames("name")   根据name获取一组值,如多选框request.getRequestURL();   获取请求的urlrequest.getRequestDispatcher("

10、 路径 ").forward(request,response)  转发是一次请求request.getCookie();获取请求中的cookierequest.getSession(true)获取session。 默认参数为true表示如果没有获取到,则重新创建并返回;false如果没有获取到,返回null代码题 共1题满分:20分8、写一个HelloServlet ,实现向页面输出内容hi czbk。(20分)参考答案:JavaWeb101.txt 下载答案说明:实现Servlet(1)实现Servl

11、et接口如果实现接口,需要把接口里面的方法都实现。(2)继承GenericServlet, HttpServlet类如果继承类,不需要把类中的方法都实现。(3)需要web服务器知道java程序不是一个普通的java程序,而是一个servlet通过配置进行操作,在web项目中,web.xml里面进行配置。1定义一个类继承httpServlet public class HelloServlet extends HttpServlet /处理get请求 Overrideprotected void doGet(HttpServletRequest req, HttpServletResp

12、onse resp)throws ServletException, IOException PrintWriter writer = resp.getWriter();/向浏览器的输出流writer.println("<html>");writer.println("<body>");writer.println("hi czbk");writer.println("</body>");writer.println("</html>");/处理p

13、ost请求Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException doGet(req, resp); 2重写2个方法 doGet,doPost 3在在web.xml中配置<servlet><servlet-name>HelloServlet</servlet-name><servlet-class>cn.itcast.servlet.ServletDemo1</ser

14、vlet-class></servlet><servlet-mapping><servlet-name>HelloServlet</servlet-name><url-pattern>/hello</url-pattern></servlet-mapping>第二天:1、关于ANR描述错误的是( )。(10分)A、ANR 全称是 Application Not RespondingB、出现ANR 异常不会影响用户使用C、在主线程中执行了耗时的操作 会引起ANRD、应用超过5秒钟不响应用户操作会出

15、现anr参考答案:B答案说明:在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。用户可以选择让程序继续运行,但是,他们在使用你的应用程序时,并不希望每次都要处理这个对话框。因此,在程序里对响应性能的设计很重要,这样,系统不会显示ANR给用户。2、关于handler消息分发机制,下列( )方法可以延时发送消息。(10分)A、sendEmpty(.)B、sendEmptyMessage(.)C、sendMessageDelayed(

16、.)D、sendMessage(.)参考答案:C答案说明:我们利用Handler的sendMessageDelayed(msg, secs*1000),可以要求secs秒后,将信息放置在队列中,排队处理,很简单就能实现。3、关于Android中消息机制说法正确的是()。(10分)A、Handler只能用来发送消息B、Handler是用来发送消息和处理消息的C、MessageQueue是用来收集消息并主动发送消息D、Looper是主消息的循环器.Looper是由handler创建的参考答案:B答案说明:Handler顾名思义就是处理者的意思,它主要用于发送消息和处理消息。一般使用Han

17、delr对象的sendMessage()方法发送消息,发出的消息经过一系列的辗转处理后,最终会传递到Handler对象的handlerMessage()方法中.多选题 共2题满分:20分4、下列选项中说法正确的是() 。(10分)A、避免ANR,可以把耗时操作放到子线程B、ANR是Application Not Response 应用无响应C、只有在主线程(UI线程)才可以更新UID、消息机制可以用来处理这种更新UI的情况参考答案:A,B,C,D答案说明:(1)ANR  Application Not Response 应用无响应。主

18、线程(UI线程)。(2)如果在主线程中进行了耗时的操作(比如连接网络,拷贝大数据)Thread.sleep();(3)避免ANR,可以把耗时操作放到子线程。(4)在4.0之后谷歌强制要求连接网络不能在主线程中进行访问。09-26 01:49:03.818: W/System.err(1638): android.os.NetworkOnMainThreadException(5)只有在主线程(UI线程)才可以更新UI09-26 01:51:50.050: W/System.err(1708): android.view.ViewRoo

19、tImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.(6)消息机制可以用来处理这种更新UI的情况。5、由于子线程不能更新UI代码,我们可以使用下列哪种方式()解决这个问题。(10分)A、在子线程中使用setImageView(.)设置图片B、调用runOnUiThread(. )方法中更新uiC

20、、在子线程中用handler发送message给主线程,然后在主线程中更新uiD、Thread中直接更新ui参考答案:B,C答案说明:runOnUiThread(),顾名思义就是运行在UI线程,也就是主线程。1. 如果仅仅就是更新UI,那么我们可以用runOnUiThread(),当中的代码都会在主线程中执行。2. 当我们需要传递参数的时候,这时候就需要使用handler来实现判断题 共0题满分:0分填空题 共1题满分:10分6、_ 主要用于存放所有通过Handler发送的消息。(10分)参考答案:MessageQueue答案说明:1. MessageM

21、essage是在线程之间传递的消息,它可以在内部携带少量的信息what字段,用于在不同线程之间交换数据。除此之外还可以使用arg1和arg2字段来携带一些整型数据,使用obj字段携带一个Object对象。2. HandlerHandler顾名思义也就是处理者的意思,它主要是用于发送和处理消息的。发送消息一般是使用Handler的sendMessage()方法,而发出的消息经过一系列地辗转处理后,最终会传递到Handler的handleMessage()方法中。3. MessageQueueMessageQueue是消息队列的意思,它主要用于存放所有通过Handler发送的消

22、息。这部分消息会一直存在于消息队列中,等待被处理。每个线程中只会有一个MessageQueue对象。4. LooperLooper是每个线程中的MessageQueue的管家,调用Looper的loop()方法后,就会进入到一个无限循环当中,然后每当发现MessageQueue中存在一条消息,就会将它取出,并传递到Handler的handleMessage()方法中。每个线程中也只会有一个Looper对象。简答题 共1题满分:20分7、简单介绍一下Handler使用步骤.(20分)参考答案:1 在主线程创建Handler对象  Private 

23、Handler handler = new Handler()  2 重写handlemessage方法 3 拿着主线程创建的Handler发送一条消息  handler.sendMessage();4 重写的handlemessage方法就会接收到我们发送的消息.答案说明:Android4.0以后不能在UI线程访问网络,而子线程也不能更新UI界面。为了根据下载进度实时更新UI界面,就需要用到Handler消息机制来实现线程间的通信,一般我们在主线程创建Handler对象.然

24、后开启一个子线程去访问网络处理耗时的任务,然后通过主线程创建的Handler发送消息,消息就被加入到了消息队列MessageQueue中,系统里有一MainLooper(主消息的循环器),不断的监视消息队列,一旦发现消息队列里有消息,就把消息给取出来交给Handler,我们重写Handler的handleMessage()方法,在这个方法里面去更新ui.代码题 共1题满分:20分8、编写一个图片查看器的案例,访问指定的url地址,并将获取到的图片更新ui界面。(请使用除handler以外的方式)。(20分)答案说明:子线程不能更新ui,所以通过runOnUiThread在主线程中更新ui.Xm

25、l布局文件:<LinearLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"tools:context=".MainActivity" > <Button android:layout_width="wrap_content" an

26、droid:layout_height="wrap_content" android:onClick="click" android:text="查看" /> <ImageView android:id="+id/iv" android:layout_width="wrap_content" android:layout_height="wrap_content" /></LinearLayout>Java代码中:public class Mai

27、nActivity extends Activity private ImageView iv;Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);/ 1找到我们关心的控件iv = (ImageView) findViewById(R.id.iv);/ 2点击按钮进行查看 指定路径的源码public void click(View v) new Thread() public voi

28、d run() String path = "try URL url = new URL(path);HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setRequestMethod("GET");conn.setConnectTimeout(5000);int code = conn.getResponseCode();if (code = 200) InputStream inputStream = conn.getInputStream(); final Bitma

29、p bitmap = BitmapFactory.decodeStream(inputStream); runOnUiThread(new Runnable() public void run() iv.setImageBitmap(cacheBitmap);); catch (Exception e) e.printStackTrace();.start();第三天:1,当前Activity被其他Activity覆盖或者锁屏,系统会调用()生命周期方法 ,暂停当前Activity的执行。(10分)A、onDestroy()B、onStop()C、onPasue()D、以上都会调用参

30、考答案:C答案说明:1. 启动Activity:系统会先调用onCreate()方法,然后调用onStart()方法,最后调用onResume()方法,Activity进入运行状态。2. 当前Activity被其他Activity覆盖或者锁屏:系统会调用onPasue()方法,暂停当前Activity的执行。3. 当前Activity由覆盖恢复到前台或者被解锁屏:系统会调用onResume()方法,再次进入运行状态。4. 当前Activity转到新的Activity界面或者Home键回到主屏,自居后台:系统会调用onPasue()方法,然后调用onSto

31、p()方法,进入停滞状态。5. 用户退回到此Activity:系统会调用onRestart()方法,然后调用onStart()方法,最后调用onResume()方法,再次进入运行状态。6. 当前Activity处于被覆盖状态或者后台不可见状态:有的时候系统内存不足,会杀死该Activity,而后用户退回到该Activity时:再次调用onCreate(),onStart(),onResume()方法,进入运行状态。7. 用户退出该Activity:系统会调用onPause()方法,然后onStop()方法,最后onDestroy()方法,结束该Activity。2

32、、Intent中如果既要设置类型又要设置数据,需要使用()方法。(10分)A、setData(.)B、setType(.)C、setDataAndType(.)D、setTypeAndData(.)参考答案:C答案说明:Intent.setData(data)和intent.setType(type)注意这两个方法会互相清除,意思就是:如果先设置setData(data)后设置setType(type),那么后设置的setType(type)会把前面setData(data)设置的内容清除掉,而且会报错,反之一样,所以如果既要设置类型与数据,那么使用setDataAndType(data,ty

33、pe)这个方法。3、使用() 管理器来完成发送短信的功能。(10分)A、ActivityManagerB、WifiManagerC、SmsManagerD、ConnectivityManager参考答案:C答案说明:ActivityManager 是与系统中所有运行着的Activity交互提供了接口,主要的接口围绕着运行中的进程信息,任务信息,服务信息等。WifiManager  类似获得wifi链接名字,判断是否链接,开关等一些和无线相关;SmsManager 管理短信操作,如发送数据,文本和PDU短信;ConnectivityManager

34、  主要管理网络连接相关操作;多选题 共2题满分:20分4、intent传递数据时可以传递()类型的数据。(10分)A、SerializableB、charsequenceC、ParcelableD、Bundle参考答案:A,B,C,D答案说明:第一类:简单或基本数据类型; 第二类:传递一个Bundle;第三类:传递Serializable对象;第四类:Parcelable对象;第五类:Intent return this;5、下列选项中()属于Activity的生命周期方法。(10分)A、onCreate()B、onStart()C、onCr

35、eateView()D、onRestart()参考答案:A,B,D答案说明:生命周期方法 调用时间onCreate()     当Activity第一次创建的时候调用onDestory()     当Activity销毁的时候调用onStart()         当Activity变成可见的时候调用onStop()       

36、;  当Activity不可见的时候调用onResume()     当Activity可以和用户交互的时候调用onPause()         当Activity不可和用户交互的时候调用onRestart()     当Activity停止了,但是没有销毁,从停止到启动时调用判断题 共0题满分:0分填空题 共1题满分:10分6、首次启动Activity时,系统会先后调用_生命周期方法

37、,之后Activity进入运行状态。(10分)参考答案:onCreate()->onStart()->onResume()答案说明:1.启动Activity:系统会先调用onCreate()方法,然后调用onStart()方法,最后调用onResume()方法,Activity进入运行状态。2.当前Activity被其他Activity覆盖或者锁屏:系统会调用onPasue()方法,暂停当前Activity的执行。3.当前Activity由覆盖恢复到前台或者被解锁屏:系统会调用onResume()方法,再次进入运行状态。4.当前Activity转到新的Activity界面或者Hom

38、e键回到主屏,自居后台:系统会调用onPasue()方法,然后调用onStop()方法,进入停滞状态。5.用户退回到此Activity:系统会调用onRestart()方法,然后调用onStart()方法,最后调用onResume()方法,再次进入运行状态。6.当前Activity处于被覆盖状态或者后台不可见状态,有的时候系统内存不足,会杀死该Activity,而后用户退回到该Activity时:再次调用onCreate(),onStart(),onResume()方法,进入运行状态。7. 用户退出该Activity:系统会调用onPause()方法,然后onStop()方法,最后o

39、nDestroy()方法,结束该Activity。简答题 共1题满分:20分7、请简单谈谈你对Activity四种启动模式的理解。(20分)参考答案:Activity的启动模式在AndroidManifest.xml中,可以配置每个activity的启动模式:例如:android:launchMode="standard"1. standard 标准模式不管有没有已存在的实例,都生成新的实例。每次调用startActivity()启动Activity时都会创建一个新的Activity放在栈顶,每次返回都会销毁实例并出栈,可以重复创建。2. si

40、ngletop 单一顶部模式如果任务栈的栈顶存在这个要开启的activity,不会重新创建新的activity,而是复用已存在的activity。保证栈顶如果存在,则不会重复创建,但如果不在栈顶,那么还是会创建新的实例。3. singletask 单一任务模式是一个比较严格的模式,在当前任务栈里面只能有一个实例存在,当开启activity的时候,就去检查在任务栈里面是否有实例已经存在,如果有实例存在就复用这个已经存在的activity,并且把这个activity上面的所有的别的activity都清空,复用这个已经存在的activity。4. single

41、Instance 这种启动模式比较特殊,它会启用一个新的任务栈,activity会运行在自己的任务栈里,这个任务栈里面只有一个实例存在并且保证不再有其他Activity实例进入。在整个手机操作系统里面只有一个实例存在。答案说明:Singletop 应用场景:浏览器的书签Singletask 应用场景:BrowserActivity浏览器界面,播放器的播放Activity。如果一个activity的创建需要占用大量的系统资源(cpu,内存)一般配置这个activity为 singletask的启动模式。webkit内核(c) 初始化需要大量内存如

42、js解析引擎、html渲染引擎、http解析、下载如果使用singletask模式,可以减少内存开销,cpu占用。SingleInstance 应用场景:来电页面InCallScreenActivity。代码题 共1题满分:20分8、打开指定包名,类名的Activity。(包名:ent.NextActivity 类名:NextActivity)(20分)答案说明:Intent意图:显示意图和隐式意图。显式意图:调用Intent.setComponent()或Intent.setClass()方法明确指定了组件名的Intent为显式意图,显式意图明

43、确指定了Intent应该传递给哪个组件。隐式意图:没有明确指定组件名的Intent为隐式意图。 Android系统会根据隐式意图中设置的动作(action)、类别(category)、数据(URI和数据类型)找到最合适的组件来处理这个意图。/ trim()方法删除字符串开始和结束位置的空格Intent intent = new Intent();intent1.setClassName("ent", "ent.NextActivity"); /开启打电话意图startActivity(in

44、tent);第四天:1、在代码中获取注册的广播事件方法是().(10分)A、getAction()B、getActionCall()C、getMethod()D、getOutCall()参考答案:A答案说明:getAction()方法是获取广播事件的方法.2、在广播接收者中,setResultData()方法的作用是()。标明前提,(10分)A、修改广播接收者的数据B、修改数据并往下传递C、设置广播接收者的数据D、以上都不对参考答案:A答案说明:有序广播可以通过setResultData()来修改广播的数据3、广播接收者需要在清单文件配置()节点。(10分)A、receiverB、broadR

45、eceiverC、serviceD、contentProvider参考答案:A答案说明:广播接收者的配置需要在清单文件里配receiver节点.多选题 共2题满分:20分4、关于广播接收者说法正确的是()(10分)A、Android中定义广播接收者要继承BroadCastReceiverB、Android中定义广播接收者的目的之一是方便我们开发者进行开发C、Android系统中内置了很多系统级别的广播D、Android中定义广播这个组件意义不是很大参考答案:A,B,C答案说明:Android中定义广播接收者要继承BroadCastReceiver,Android系统中内置了很多系统级别的广播比

46、如外拨电话,接收到短信,sd卡卸载等等,系统定义了这么多广播事件方便我们开发者进行开发,意义很大.5、关于有序广播和无序广播说法错误的是(  ).(10分)A、Android中广播分有序广播和无序广播B、无序广播是按照一定的优先级进行接收C、无序广播可以被拦截,可以被修改数据D、有序广播按照一定的优先级进行发送参考答案:B,C答案说明:Android中广播分有序广播和无序广播 有序广播按照一定的优先级发送,无序广播不可以被拦截数据不可以被修改判断题 共0题满分:0分填空题 共1题满分:10分6、调用_方法动态的注册广播接收者.(10分)参考答案:registerR

47、eceiver答案说明:广播接收者可以在清单文件中注册也可以通过代码的方式进行注册.简答题 共1题满分:20分7、请简要说明广播接受者在Android4.0以后做了哪些安全考虑?在Android4.0以后如何使广播接受者不生效?(20分)参考答案:安卓4.0版本之后为了安全考虑,要求应用程序必须要有界面,必须被用户运行过一次,广播接受者才会生效。安卓4.0版本的强行停止相当于冻结一个应用,一旦应用程序被用户强行停止了,广播接受者就不会生效了,直到用户手动打开这个应用程序为止。答案说明:安卓4.0版本之后为了安全考虑,要求应用程序必须要有界面,必须被用户运行过一次,广播接受者才会生效。安卓4.0

48、版本的强行停止相当于冻结一个应用,一旦应用程序被用户强行停止了,广播接受者就不会生效了,直到用户手动打开这个应用程序为止。安卓4.0以前的版本没有这样的安全考虑。代码题 共1题满分:20分8、请编写一个程序,要求定义一个广播接收者,用来接收开机的广播。(20分)答案说明:ent.action.BOOT_COMPLETED是开机的广播的Action,注意需要加入权限:<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>1、定义广播接受者

49、用来接收开机的广播:public class BootReceiver extends BroadcastReceiver Overridepublic void onReceive(Context context, Intent intent) Intent intent1 = new Intent(context,MainActivity.class);Intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(intent1); 2、清单文件注册<receiver android:name="

50、com.itheima.boot.BootReceiver" > <intent-filter> <action android:name="ent.action.BOOT_COMPLETED" /> </intent-filter></receiver>3、加入权限<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>第五天:1,以下关于服务的生命周期说法正确的

51、是()(10分)A、服务的生命周期和Activity一样B、服务的创建会执行onCreate()C、启动时 onCreate()>onStart()->onResume()D、通过startService方式开启服务,首先会调用onCreate 和 onStart方法参考答案:D答案说明:通过startService方式开启服务首先会调用onCreate()方法 然后调用onStart( )方法2、如果一个进程含有一个service和一个可视activity,那么这个进程是什么进程(   )(10分)A、前台进程B、可见进程C、后台

52、进程D、空进程参考答案:B答案说明:Android 对进程的重要性评级的时候,选取它最高的级别。如果一个进程含有一个service和一个可视activity,进程将被归入一个可视进程而不是service进程。3、通过bindService()绑定服务,需要传入一个ServiceConnection类的对象,需要实现这个类中的哪两个方法(   )(10分)A、onConnected(.)和onDisconnected(.)B、onServiceConnected(.)和onServiceDisconnected(.)C、onStartConnected(.

53、)和onSartDisconnected(.)D、onCreate(.)和onDisconnected(.)参考答案:B答案说明:ServiceConnection类是用来监听服务的状态,需要实现其中的onServiceConnected()方法和onServiceDisconnected()方法。多选题 共2题满分:20分4、关于AIDL描述正确的是()(10分)A、AIDL全称是Android interface definition LanguageB、AIDL出现目的是解决进程间通信C、AIDL定义接口的源代码必须以.aidl结尾D、AIDL语言就是java语言的演变参考答案:A,B,

54、C答案说明:在Android系统中,各个应用程序都运行在自己的进程中,进程之间一般无法直接进行通信,如果想要完成不同进程之间的通信,就需要使用远程服务通信。远程服务通信是通过AIDL(Android Interface Definition Language)实现的,它是一种接口定义语言.它不是由java演变的5、android 通过 startService 的方式开启服务,以下说法错误的是()(10分)A、当第一次启动的时候先后调用 onCreate()和 onStart()方法B、当第一次启动的时候只会调用 onCreate()

55、方法C、如果 service 已经启动,将先后调用 onCreate()和 onStart()方法D、如果 service 已经启动,只会执行 onStart()方法,不在执行 onCreate()方法参考答案:B,C答案说明:通过startService方式开启服务,当第一次启动的时候先后调用 onCreate()和 onStart()方法,如果 service 已经启动,只会执行 onStart()方法,不在执行 onCreate()方法判断题 共0题满分:0分填空题 共1题满分:10分6、通过bindService方式开启的服务

56、,_方法可以进行解绑服务.(10分)参考答案:unbindService()答案说明:通过bindService方式开启服务特点是服务和调用者之间不求同时生,但求同时死,所以调用者退出的时候需要解绑服务,解绑服务调用unbindService().简答题 共1题满分:20分7、简单介绍一下Android中如何创建服务(20分)参考答案:(1)定义一个类继承Service类在清单文件里面注册Service答案说明:服务(Service)是Android中的四大组件之一,它能够长期在后台运行且不提供用户界面。服务的创建定义一个类继承Service.并且四大组件都需要在清单文件里注册.代码题 共1题

57、满分:20分8、请编写一段程序,开启服务,并调用服务中的方法。(20分)参考答案:u.zip 下载答案说明:调用Service中的方法需要通过IBinder中间人对象,调用bindService()方法需要传入一个ServiceConnection对象,这个类中有一个onServiceConnected()方法,当绑定成功后调用,并且Service中onBind()方法中返回的IBinder对象就被传递到onServiceConnected()方法中,在这个方法中可以通过中间人对象调用服务中的方法。1、创建Service,并在服务中定义方法public class TestDemoS

58、ervice extends Service Overridepublic IBinder onBind(Intent intent) return new MyBinder();Overridepublic void onCreate() super.onCreate();Overridepublic void onDestroy() super.onDestroy();public void serviceMethod()Toast.makeText(this, "我是服务里面的方法", 1).show();2、定义接口:public interface Iservic

59、e public void serviceMethod();3、创建Binder类,实现接口private class Mybinder extends Binder implements IService Overridepublic void serviceMethod() 4、定义ServiceConnection类,在onServiceConnected中调用服务方法private class MyConn implements ServiceConnectionOverridepublic void onServiceConnected(ComponentName name, IBinder service) MyBinder binder = (MyBinder) service;binder.callServiceMethod(); Overridepublic void onServiceDisconnected(ComponentName name)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论