前言
好久不见,甚是想念。各位朋友们,我又携带着最受大家欢迎的面试题回来了,可能会有朋友要问了:哎呀,你咋不更了,这不是上次那一份资料用完了嘛,这不,我又厚着脸皮去问我们公司的主管:Boss,给我份面试题呗。Boss瞥了我一眼,冷笑了一下就不做声了,最终在我答应带他上白银,他才拿了这份资料给我٩(๑❛ᴗ❛๑)۶老规矩:一天20题,喜欢的朋友点个关注就不会错过我的更新了,关注我,带你装*,带你飞。
21.sim卡的EF 文件有何作用
sim
卡就是电话卡,sim
卡内有自己的操作系统,用来与手机通讯的。Ef
文件用来存储数据的。
22.Activity的状态有几种?
主要有以下三种状态:
1.运行
2.暂停
3.停止
23.让Activity变成一个窗口
设置activity
的style属性=”@android:style/Theme.Dialog”
<activity
android:name=".CondorMainActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Dialog" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
24.android:gravity与android:layout_gravity的区别
gravity
:
表示组件内元素的对齐方式
layout_gravity
:
相对于父类容器,该视图组件的对齐方式
25.如何退出Activity
结束当前activity
Finish()
killProgress()
System.exit(0)
关闭应用程序时,结束所有的activity
可以创建一个List
集合,每新创建一个activity
,将该activity
的实例放进list
中,程序结束时,从集合中取出循环取出activity
实例,调用finish()
方法结束
26.如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态?
在onPuase
方法中调用onSavedInstanceState()
27.Android中的长度单位详解
Px
:
像素
Sp与dp
是长度单位,但是与屏幕的单位密度无关.
28.activity,service,intent之间的关系
这三个都是Android
应用频率非常的组件。Activity
与service
是四大核心组件。Activity
用来加载布局,显示窗口界面,service运行后台,没有界面显示,intent
是activity
与service
的通信使者。
29.activity之间传递参数,除了intent,广播接收器,contentProvider之外,还有那些方法?
File
:
文件存储,推荐使用sharedPreferecnces
静态变量
30.Adapter是什么?你所接触过的adapter有那些?
是适配器,用来为列表提供数据适配的。经常使用的adapter
有baseadapter,arrayAdapter,SimpleAdapter,cursorAdapter,SpinnerAdapter
等
31.Fragment与activity如何传值和交互?
Fragment
对象有一个getActivity()
的方法,通过该方法与activity
交互
使用framentmentManager.findFragmentByXX
可以获取fragment
对象,在activity
中直接操作fragment
对象。
32.如果Listview中的数据源发生改变,如何更新listview中的数据
使用adapter
的notifyDataSetChanged
方法
33.广播接受者的生命周期?
广播接收者的生命周期非常短。当执行onRecieve
方法之后,广播就会销毁
在广播接受者不能进行耗时较长的操作
在广播接收者不要创建子线程。广播接收者完成操作后,所在进程会变成空进程,很容易被系统回收
34.ContentProvider与sqlite有什么不一样的?
ContentProvider
会对外隐藏内部实现,只需要关注访问contentProvider
的uri
即可,contentProvider
应用在app间共享。Sqlite
操作本应用程序的数据库。ContentProiver
可以对本地文件进行增删改查操作
35.如何保存activity的状态?
默认情况下activity
的状态系统会自动保存,有些时候需要我们手动调用保存。
当activity
处于onPause
,onStop
之后,activity
处于未活动状态,但是activity
对象却仍然存在。当内存不足,onPause
,onStop
之后的activity
可能会被系统摧毁。
当通过返回退出activity
时,activity
状态并不会保存。
保存activity状态需要重写onSavedInstanceState()
方法,在执行onPause,onStop
之前调用onSavedInstanceState
方法,onSavedInstanceState
需要一个Bundle类型的参数,我们可以将数据保存到bundle中,通过实参传递给onSavedInstanceState
方法。
Activity
被销毁后,重新启动时,在onCreate
方法中,接受保存的bundle
参数,并将之前的数据取出。
36.Android中activity,context,application有什么不同。
Content
与application
都继承与contextWrapper
,contextWrapper
继承于Context
类。
Context:
表示当前上下文对象,保存的是上下文中的参数和变量,它可以让更加方便访问到一些资源。
Context
通常与activity
的生命周期是一样的,application
表示整个应用程序的对象。
对于一些生命周期较长的,不要使用context
,可以使用application
。
在activity
中,尽量使用静态内部类,不要使用内部类。内部里作为外部类的成员存在,不是独立于activity
,如果内存中还有内存继续引用到context
,activity
如果被销毁,context
还不会结束。
37.Service 是否在 main thread 中执行, service 里面是否能执行耗时的操作?
默认情况service
在main thread
中执行,当service
在主线程中运行,那在service
中不要进行一些比较耗时的操作,比如说网络连接,文件拷贝等。
38.Service 和 Activity 在同一个线程吗
默认情况下service
与activity
在同一个线程,都在main Thread
,或者ui
线程中。
如果在清单文件中指定service
的process
属性,那么service
就在另一个进程中运行。
39.Service 里面可以弹Toast么
可以。
40.在 service 的生命周期方法 onstartConmand()
可不可以执行网络操作?如何在 service 中执行网络操作?
可以的,就在onstartConmand
方法内执行。
结尾
今天的二十题安卓面试题就到此为止了,关注我,后续每日都会准时更新哦,喜欢的朋友不要吝啬你的赞和收藏哦,那我们明天再见!