您的位置:首页 > 职场人生

Activity面试题集

2015-06-12 14:57 615 查看
1.什么是Activity?

Activity是android的四大组件中最常见的部分,是Android用于交互的部分。Activity有四种状态:Active/RuningPausedStopedKilled。主要有七个生命周期方法。通过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

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: