注册广播的注册方式有几种方式,这些方式有何优缺点

3098人阅读
【求职面试】(15)
佳都新太Android笔试题
1.&请描述下Activity的生命周期
答:创建 onCreate-&&启动onStart – 开始onResume – 暂停 onPause – 结束onStop – 销毁onDestroy
2.&如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态?
答:onSaveInstanceState()
当你的程序中某一个Activity A在运行时,主动或被动地运行另一个新的ActivityB,这个时候A会执行onSaveInstanceState()。B完成以后又会来找A,这个时候就有两种情况:一是A被回收,二是A没有被回收,被回收的A就要重新调用onCreate()方法,不同于直接启动的是这回onCreate()里是带上了参数savedInstanceState;而没被收回的就直接执行onRestart()-&onStart()-&onResume(),跳过onCreate()了。
3.&如何将一个Activity设置成窗口的样式。
答:两种方法:
l& 在AndroidManifest.xml设置当前Activity的一个主题属性
android :theme=&@android:style/Theme.Dialog&&&
&&& 或者android:theme=&@android:style/Theme.Translucent&&&
l& 通过修改Theme.Dialog主题的android:windowBackground属性值可以改变Activity的背景图像
style.xml下增加以下内容
&style name= “MyTheme” parent= “@android:style/Theme.Dialog&
&item name= “android:windowBackground”&@drawable/msg_background&/item&
在manifest.xml中直接指定Activity的theme就行了
&activity android:name= “.MainActivity” android:label= “@string/app_name”android:theme= “@style/MyTheme”&
&intent-filter&
&&&& &actionandroid:name= “android.intent.action.MAIN”/&
&&&& &categoryandroid:name= “android.intent.category.LAUNCHER”/&
& &/intent-filter&
&/activity&
4.&按下返回键与Home键的区别。
答:back键默认行为是finish处于前台的Activity的,即Activity的状态为Destroy状态为止,再次启动该Activity是从onCreate开始的(不会调用onSaveInstanceState()方法)。Home键默认是stop前台的Activity即状态为onStop为止,而不是Destroy,若再次启动它,会调用onSaveInstanceState()方法,保持上次Activity的状态则是从OnRestart开始的----&onStart()---&onResume()。
5.&请介绍下Android中常用的几种布局。
1、 LinearLayout– 线性布局。
orientation – 容器内元素的排列方式。vertical: 子元素们垂直排列;horizontal: 子元素们水平排列
gravity – 内容的排列形式。常用的有 top, bottom, left, right, center 等
2、AbsoluteLayout – 绝对布局。
layout_x – x 坐标。以左上角为顶点
layout_y – y 坐标。以左上角为顶点
3、TableLayout – 表格式布局
表格布局主要以行列的形式来管理子控件,其中每一行即一个TableRow对象,每个TableRow对象可以添加子控件,并且每加入一个空间即相当于添加了一列
4、RelativeLayout – 相对布局。
layout_centerInParent – 将当前元素放置到其容器内的水平方向和垂直方向的中央位置(类似的属性有:layout_centerHorizontal,layout_alignParentLeft 等)
layout_marginLeft – 设置当前元素相对于其容器的左侧边缘的距离
layout_below – 放置当前元素到指定的元素的下面
layout_alignRight – 当前元素与指定的元素右对齐
5、FrameLayout – 层叠布局。以左上角为起点,将 FrameLayout 内的元素一层覆盖一层地显示,在帧布局中,先添加的图片会被后添加的图片覆盖。
6.&请介绍下Android的数据存储方式,以及优缺点。
?& SharedPreferences方式
用来存储”key-value paires”格式的数据,它是一个轻量级的键值存储机制,只可以存储基本数据类型,可以通过它保存一些上次用户所做的修改操作
?& 文件存储方式
它通过FileInputStream和FileOutputStream对文件进行操作。但是在Android中,文件是一个应用程序私有的,一个应用程序无法读写其他应用程序的文件,如果要共享数据就用Content Providers
?& SQLite数据库方式
Android提供的一个标准的数据库,支持SQL语句
?& 内容提供器(Contentprovider)方式
是所有应用程序之间数据存储和检索的桥梁,它的作用是使得各个应用程序之间实现数据共享
?& 网络存储方式
通过网络来存储和获取数据
7.&请介绍下ContentProvider是如何实现数据共享的。
答:一个程序可以通过实现一个Content provider的抽象接口将自己的数据完全暴露出去,而且Content providers是以类似数据库中表的方式将数据暴露。Contentproviders存储和检索数据,通过它可以让所有的应用程序访问到,这也是应用程序之间唯一共享数据的方法。要想使应用程序的数据公开化,可通过2种方法:创建一个属于你自己的Content provider或者将你的数据添加到一个已经存在的Content provider中,前提是有相同数据类型并且有写入Contentprovider的权限。
8.&如何启用Service,如何停用Service.
1.第一种是通过调用Context.startService()启动,调用Context.stopService()结束,startService()可以传递参数给Service
2.第二种方式是通过调用Context.bindService()启动,调用Context.unbindservice()结束,还可以通过ServiceConnection访问Service。
在Service每一次的开启关闭过程中,只有onStart可被多次调用(通过多次startService调用),其他onCreate,onBind,onUnbind,onDestory在一个生命周期中只能被调用一次。
9.&注册广播有几种方式,这些方式有何优缺点?请谈谈Android引入广播机制的用意。
答:注册广播有两种方式:
1、在应用程序的代码中注册&
注册BroadcastReceiver:&
registerReceiver(receiver,filter);&
取消注册BroadcastReceiver:&
unregisterReceiver(receiver);&
当BroadcastReceiver更新UI,通常会使用这样的方法注册。启动Activity时候注册BroadcastReceiver,Activity不可见时候,取消注册。&
&& 2、在androidmanifest.xml当中注册&
&receiver&&
&& &intent-filter&&
&&& &action android:name=&android.intent.action.PICK&/&&
&& &/intent-filter&&
&/receiver&&
使用这样的方法注册弊端:它会始终处于活动状态,毕竟是手机开发,cpu和电源资源比较少,一直处于活动耗费大,不利。&
引入广播机制的用意:
a:引入广播机制可以方便几大组件的信息和数据交互。
b:程序间互通消息(例如在自己的应用程序内监听系统来电)
c:效率上(参考UDP的广播协议在局域网的方便性) d:设计模式上(反转控制的一种应用,类似监听者模式
10.Android如何进行进程间通信,怎么实现?
答:Android提供了AIDL来实现进程间通信(IPC),AIDL全称为Android Interface Definition Language。
简历里AIDL服务的具体步骤如下:
1.&&&在Eclipse Android工程中的Java源文件目录中建立一个扩展名为aidl的文件。该文件的语法类似于Java代码,但会稍有不同。
2.&&&如果aidl文件的内容正确的话,ADT会自动生成一个Java接口文件(*.java).
3.&&&建立一个服务类(Service的子类)
4.&&&实现由aidl文件生成的Java接口。
5.&&&在AndroidManifest.xml文件中配置AIDL服务,尤其要注意的是,&action&标签中android:name的属性值就是客户端要引用该服务的ID,也就是Intent类构造方法的参数值。
11.Android提供给第三方调用的方式有哪几种,优缺点分别是什么?
答:第三方调用的方式?不理解是什么!
12.什么是ANR,如何避免ANR?
ANR:ApplicationNot Responding,五秒在Android中,活动管理器和窗口管理器这两个系统服务负责监视应用程序的响应。当出现下列情况时,Android就会显示ANR对话框了:
  对输入事件(如按键、触摸屏事件)的响应超过5秒
  意向接受器(intentReceiver)超过10秒钟仍未执行完毕
  Android应用程序完全运行在一个独立的线程中(例如main)。这就意味着,任何在主线程中运行的,需要消耗大量时间的操作都会引发ANR。因为此时,你的应用程序已经没有机会去响应输入事件和意向广播(Intent broadcast)。
  因此,任何运行在主线程中的方法,都要尽可能的只做少量的工作。特别是活动生命周期中的重要方法如onCreate()和 onResume()等更应如此。潜在的比较耗时的操作,如访问网络和数据库;或者是开销很大的计算,比如改变位图的大小,需要在一个单独的子线程中完成 (或者是使用异步请求,如数据库操作)。但这并不意味着你的主线程需要进入阻塞状态已等待子线程结束 — 也不需要调用Therad.wait()或者Thread.sleep()方法。取而代之的是,主线程为子线程提供一个句柄(Handler),让子线程在即将结束的时候调用它(xing:可以参看Snake的例子,这种方法与以前我们所接触的有所不同)。使用这种方法涉及你的应用程序,能够保证你的程序对输入保持良好的响应,从而避免因为输入事件超过5秒钟不被处理而产生的ANR。这种实践需要应用到所有显示用户界面的线程,因为他们都面临着同样的超时问题。
13.如果实现一个web app来调用本地的通讯录功能?
答: 没有使用webapp来调用本地的通讯录功能,不知道如何解答。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:3405138次
积分:35266
积分:35266
排名:第86名
原创:635篇
转载:81篇
评论:2444条
难度:中级
类型:技术教程
难度:初级
类型:实战教学
文章:27篇
阅读:47061
阅读:72390
阅读:45961
文章:14篇
阅读:257207
文章:11篇
阅读:145003
文章:10篇
阅读:69218
文章:13篇
阅读:33231
文章:13篇
阅读:339340
微信公众号:wwjblog
微信号:whatswwj
移动开发者狂热群:注明入群理由,里面有一群热爱分享的开发者
高品质课堂推荐:
(2)(2)(3)(5)(9)(3)(6)(2)(2)(2)(8)(5)(10)(3)(2)(3)(4)(12)(1)(5)(5)(6)(7)(2)(13)(11)(11)(8)(14)(10)(16)(8)(15)(23)(13)(12)(12)(11)(17)(28)(18)(20)(8)(11)(20)(13)(14)(10)(23)(18)(15)(36)(27)(47)(16)(3)(28)(33)(14)(13)
从入门到成长到成熟再到优秀,大多数程序员走了前面一段相似的道路,而有些人却走得更远一些!!!!注册广播有几种方式,这些方式有何优缺点 - 我的异常网当前位置:& &&&注册广播有几种方式,这些方式有何优缺点注册广播有几种方式,这些方式有何优缺点&&网友分享于:&&&搜索量:145次
场景:【 Android每天一练】注册广播有几种方式,这些方式有何优缺点【 Android每日一练】注册广播有几种方式,这些方式有何优缺点?
注册广播有几种方式,这些方式有何优缺点?请谈谈Android引入广播机制的用意是什么?大家跟帖交流哈,每天晚上24:00更新答案另外与本帖相关的更多交流可以参考:/thread-.html
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关文章 12345678910 Copyright & &&版权所有android面试题目_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
android面试题目
上传于||文档简介
&&a​n​d​r​o​i​d​面​试​题​目
阅读已结束,如果下载本文需要使用5下载券
想免费下载本文?
定制HR最喜欢的简历
你可能喜欢}

我要回帖

更多关于 注册广播的两种方式 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信