基础面试题(二)

1,如何退出Activity。

对于单一Activity的应用来说,退出很简单,直接finish()即可。当然,也可以用killProcess()System.exit()这样的方法。现提供几个方法,供参考:
a,抛异常强制退出:该方法通过抛异常,使程序Force Close。验证可以,但是,需要解决的问题是,如何使程序结束掉,而不弹出Force Close的窗口。
b,记录打开的Activity:每打开一个Activity,就记录下来。在需要退出时,关闭每一个Activity即可。
c,发送特定广播:在需要结束应用时,发送一个特定的广播,每个Activity收到广播后,关闭即可。
d,递归退出在打开新的Activity时使用startActivityForResult,然后自己加标志,在onActivityResult中处理,递归关闭。除了第一个,都是想办法把每一个Activity都结束掉,间接达到目的。但是这样做同样不完美。你会发现,如果自己的应用程序对每一个Activity都设置了nosensor,在两个Activity结束的间隙,sensor可能有效了。但至少,我们的目的达到了,而且没有影响用户使用。为了编程方便,最好定义一个Activity基类,处理这些共通问题。

*****http://blog.csdn.net/sxsj333/article/details/6639812

2,在Android系统中,使用什么对Activity进行管理?

使用Task(作业)和BackStackActivity栈)对Activity进行管理。

http://www.cnblogs.com/franksunny/archive/2012/04/17/2453403.html

3,一个Intent对象包括六个属性,请一一列举这六个属性。

组件名(ComponentName)、动作(Action)、数据(Data)、分类(Category)、额外信息(Extra)和标志(Flags)。

http://www.cnblogs.com/liushengjie/archive/2012/08/30/2663066.html

4,Android Intent的使用

http://blog.csdn.net/yyywyr/article/details/38474173

5,为什么要引入IntentFilter

对于显式Intent,它的接受者已被指定,所以系统会自动把这个Intent发给指定的组件。但是对于隐式Intent,由于并没有指定其组件名属性,所以系统不知道该把它发给哪个组件名,于是系统就直接将其发出去,算是所有的组件都有权接收,这就需要定义一个组件可以接收到哪些Intent,所以就引入了IntentFilterIntent过滤器)。

http://blog.csdn.net/dadahacker/article/details/5756391

6, Activity变成一个窗口:Activity属性设定。

讲点轻松的吧,可能有人希望做出来的应用程序是一个漂浮在手机主界面的东西,那么很 简单你只需要设置 一下Activity的主题就可以了在AndroidManifest.xml 中定义 Activity 地方一句话: 

Xml代码 

a. android :theme="@android:style/Theme.Dialog" 

  这就使你的应用程序变成对话框的形式弹出来了,或者 

Xml代码 

b. android:theme="@android:style/Theme.Translucent" 

  就变成半透明的,[友情提示-.-]类似的这种activity的属性可以在android.R.styleable 类的AndroidManifestActivity 方法中看到,AndroidManifest.xml中所有元素的属性的介绍都可以参考这个类android.R.styleable 

上面说的是属性名称,具体有什么值是在android.R.style 可以看到,比如这个"@android:style/Theme.Dialog" 就对应于android.R.style.Theme_Dialog ,('_'换成'.' < --注意:这个是文章内容不是笑脸)就可以用在描述文件 中了,找找类定义和描述文件中的对应关系就都明白了。

http://yangguangfu.iteye.com/blog/895379

7.请写出ImageButtonImageView的关系和区别。

ImageButton继承自ImageView ImageButton用在需要接收用户点击的图片显示中,而ImageView则一般用来直接显示图片。

*****

CheckBox是选择框,RadioButton是单选按钮,而ToggleButton是双状态选择按钮。

android:gravity用于设置View组件的对齐方式,而android:layout_gravity用于设置Container组件的 对齐方式。

padding填充的意思,指的是view中的contentview边缘的距离,类似文本中的indent
margin表示的是view的左边缘与parent view的左边缘的距离

8,ListView的特点

①采用MVC模式将前端显示和后端数据分离。

②该控件不能使用ListView.add或类似方法添加数据,需要指定一个Adapter对象,通过Adapter对象获得需要显示的数据,这个Adapter需要实现ListAdapter接口。

③为ListView提供数据的List或数组相当于MVC模式中的M(数据模型Model)。

ListView相当于MVC模式中的V(视图View)。⑤Adapter对象相当于MVC模式中的C(控制器Control)。

9,请简单介绍一下ListView的缓存机制。

①如果有几千、几万甚至更多的项时,其中只有可见的项存在于内存中,其它的都在Recycler中,RecyclerAndroid中专门用来处理缓存的组件。

ListView先通过getView()方法请求一个View,然后请求其它可见的ViewconvertViewgetView中是空的(null)。

③当列表第一项滚出屏幕,并且一个新的项从屏幕低端上来时,ListView会再请求一个View,这时,convertView已经不是空值了,它的值是滚出屏幕的第一项,之后只需设定新的数据,然后返回convertView即可,而不必重新创建一个View

10, ListView 优化

http://mzh3344258.blog.51cto.com/1823534/889879



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值