Activity面试题集
2015-06-12 14:57
615 查看
1.什么是Activity?
Activity是android的四大组件中最常见的部分,是Android用于交互的部分。Activity有四种状态:Active/Runing、Paused、Stoped、Killed。主要有七个生命周期方法。通过Intent与其他Activity或者组件通信。
2.请描述一下Activity生命周期。
参考Activity生命周期
3.两个Activity之间跳转时必然会执行的是哪几个方法。
这个问题与 从A跳转到B需要执行那些生命周期方法 的意思是相同的。分为两种情况:B不透明时,A执行除onDestory之外的全部方法,B执行到onResume方法;B透明时,A执行到onPause方法,B执行到onResume方法。
4.横竖屏切换时候Activity的生命周期。
参考Activity生命周期,不过说的不够详细,还有一些情况没说,可以查看其中的参考资料。
5.如何将一个Activity设置成窗口的样式。
在AndroidManifest.xml中在你需要显示为窗口的activity中添加如果属性:android:theme="@style/Theme.FloatActivity" 即可
6.你后台的Activity被系统回收怎么办?如果后台的Activity由于某原因被系统回收可了,如何在被系统回收之前保存当前状态?
onSaveInstanceState在这个方法中保存信息。在onCreate中判断savedInstanceState是否为空,不为空就去出来。
7.如何退出Activity?如何安全退出已调用多个Activity的Application?
退出单个Activity调用finish()方法。
参考 http://blog.csdn.net/debug2/article/details/6193644
8.两个Activity之间怎么传递数据?
可以通过Intent,Bundle或者SharedPreferences都可以传递数据。
9.怎么在启动一个Activity时就启动一个service?
在activity的onCreate里写
startService(xxx);
然后
this.finish();结束自己..
这是最简单的方法 可能会有屏幕一闪的现象,如果UI要求严格的话用AIDL把
根据service与activity的生命周期,选择在onCreate或onResume中startService;当然要记得stopService.
10.同一个程序,但不同的Activity是否可以放在不同的Task任务栈中?
可以放在不同的Task中。需要为不同的activity设置不同的taskaffinity属性,启动activity的Intent需要包含FLAG_ACTIVITY_NEW_TASK标记
11.Activity怎么和service绑定,怎么在activity中启动自己对应的service?
startService()一旦被创建 调用着无关 没法使用service里面的方法
bindService () 把service 与调用者绑定,如果调用者被销毁, service会销毁
bindService() 我们可以使用service 里面的方法
bindService(). 让activity能够访问到service里面的方法
构建一个intent对象,
Intent service = new Intent(this,MyService.class);
通过bindService的方法去启动一个服务,
bindService(intent, new MyConn(), BIND_AUTO_CREATE);
ServiceConnection 对象(重写onServiceConnected和OnServiceDisconnected方法) 和BIND_AUTO_CREATE.
private class myconn implements ServiceConnection
{
public void onServiceConnected(ComponentName name,IBinder service) {
// TODO Auto-generated method stub
//可以通过IBinder的对象 去使用service里面的方法
}
public void onServiceDisconnected(ComponentName name) {
// TODO Auto-generated method stub
}
}
Activity是android的四大组件中最常见的部分,是Android用于交互的部分。Activity有四种状态:Active/Runing、Paused、Stoped、Killed。主要有七个生命周期方法。通过Intent与其他Activity或者组件通信。
2.请描述一下Activity生命周期。
参考Activity生命周期
3.两个Activity之间跳转时必然会执行的是哪几个方法。
这个问题与 从A跳转到B需要执行那些生命周期方法 的意思是相同的。分为两种情况:B不透明时,A执行除onDestory之外的全部方法,B执行到onResume方法;B透明时,A执行到onPause方法,B执行到onResume方法。
4.横竖屏切换时候Activity的生命周期。
参考Activity生命周期,不过说的不够详细,还有一些情况没说,可以查看其中的参考资料。
5.如何将一个Activity设置成窗口的样式。
在AndroidManifest.xml中在你需要显示为窗口的activity中添加如果属性:android:theme="@style/Theme.FloatActivity" 即可
6.你后台的Activity被系统回收怎么办?如果后台的Activity由于某原因被系统回收可了,如何在被系统回收之前保存当前状态?
onSaveInstanceState在这个方法中保存信息。在onCreate中判断savedInstanceState是否为空,不为空就去出来。
7.如何退出Activity?如何安全退出已调用多个Activity的Application?
退出单个Activity调用finish()方法。
参考 http://blog.csdn.net/debug2/article/details/6193644
8.两个Activity之间怎么传递数据?
可以通过Intent,Bundle或者SharedPreferences都可以传递数据。
9.怎么在启动一个Activity时就启动一个service?
在activity的onCreate里写
startService(xxx);
然后
this.finish();结束自己..
这是最简单的方法 可能会有屏幕一闪的现象,如果UI要求严格的话用AIDL把
根据service与activity的生命周期,选择在onCreate或onResume中startService;当然要记得stopService.
10.同一个程序,但不同的Activity是否可以放在不同的Task任务栈中?
可以放在不同的Task中。需要为不同的activity设置不同的taskaffinity属性,启动activity的Intent需要包含FLAG_ACTIVITY_NEW_TASK标记
11.Activity怎么和service绑定,怎么在activity中启动自己对应的service?
startService()一旦被创建 调用着无关 没法使用service里面的方法
bindService () 把service 与调用者绑定,如果调用者被销毁, service会销毁
bindService() 我们可以使用service 里面的方法
bindService(). 让activity能够访问到service里面的方法
构建一个intent对象,
Intent service = new Intent(this,MyService.class);
通过bindService的方法去启动一个服务,
bindService(intent, new MyConn(), BIND_AUTO_CREATE);
ServiceConnection 对象(重写onServiceConnected和OnServiceDisconnected方法) 和BIND_AUTO_CREATE.
private class myconn implements ServiceConnection
{
public void onServiceConnected(ComponentName name,IBinder service) {
// TODO Auto-generated method stub
//可以通过IBinder的对象 去使用service里面的方法
}
public void onServiceDisconnected(ComponentName name) {
// TODO Auto-generated method stub
}
}
相关文章推荐
- 黑马程序员——java基础——泛型
- 我的第一个原创博客来啦
- 电子商务职业经理的核心能力
- 当你输入一个网址,实际会发生什么? 曾今的面试题
- 程序员必须知道的几个Git代码托管平台
- 程序员跳槽的10个建议
- 那些年,Java程序员用过的开发工具
- 常用面试sql语句
- 搜狐面试题- listview每个item布局不同
- Shell 脚本面试问题大全
- 常见面试问题总结(持续更新)
- 码农不得不做的P图辨识能力
- 数据挖掘工程师面试指南
- 职业发展 互联网VS研究所
- 程序员面试一句话让HR面无人色
- 黑马程序员java学习笔记——正则表达式、反射
- 【剑指offer】面试题三:二维数组中的查找
- Java面试题集(51-70)
- 黑马程序员_7K面试题思路分析
- 编程之美----2.21 只考加法的面试题