永发信息网

android面试一个应用的两个activity 可以在不同栈里吗

答案:5  悬赏:60  手机版
解决时间 2021-02-03 15:38
android面试一个应用的两个activity 可以在不同栈里吗
最佳答案
1、什么是Activity

通俗一点说Activity就是一个界面,这个界面里面可以放置各个控件。Activity的界面也是用xml表示,放置在res->layout下面。每生成一个新的Activity后,我们需要在AndroidManifest.xml中注册一下这个Activity。

2、请描述一下Activity的生命周期

onCreate(Bundle savedInstanceState):创建Activity时调用,设置在该方法中,还以Bundle的形式提供对以前存储的任何状态的访问。

onStart():activity变为在屏幕上对用户可见时调用

onResume():activity开始与用户交互时调用(无论是启动还是重新启动一个activity,该方法总是被调用)

onPause():activity被暂停或者收回cpu和其他资源时调用,该方法用于保存活动状态的,也是保护现场,压栈吧

onStop():activity被停止并转为不可见阶段及后续的生命周期事件时调用。

onRestart():重新启动activity时调用,该活动仍在栈中,而不是启动新的activity

onDestroy():activity被完全从系统内存中移除时调用

3、两个Activity之间跳转时必然会执行的是哪几个方法:

onCreate():在activity生命周期开始时调用

onRestoreInstanceState():用来恢复UI状态

onRestart():当activity重新启动时调用

onStart():当activity对用户即将可见时调用

onResume():当activity与用户交互时,绘制界面

onSaveInstanceState():当activity即将移除栈顶保留UI状态时被调用

onPause():暂停当前活动的activity,提交持久数据的改变,停止动画和其他占用CPu资源的东西,由于下一个activity在这个方法返回之前不会resume,所以这个方法的代码执行要快

onStop():activity不再可见时调用

onDestroy():在activity销毁栈时被调用的最后一个方法

4、横竖屏幕切换时候activity的生命周期

①不设置activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,且竖屏时会执行两次

②设置activity的android:configChanges=”orientation"时,切屏还是会调用各个生命周期,切横屏,竖屏时只会执行一次

③设置activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法

5、你后台的Activity被系统回收怎么办?

系统会帮我们记录下回收之前Activity的状态,再次调用被回收的Activity就要重新调用onCreate()方法,不同于直接启动的是这回onCreate()里面带上参数savedInstanceState,savedInstanceState是一个Bundle对象,基本上可以把它理解为系统帮你维护的一个map对象,使用它可以恢复到回收前的状态

6、如何将一个activity设置为窗口的样式

①在你的style.xml文件中可以新建一如下的类似Dialog的style:

<style name="Theme.FloatActivity" parent="android:style/Theme.Dialog></style>

②在AndroidManifest.xml中在你需要显示为窗口的activity中添加如下属性:

android:theme="@style/Theme.FloatActivity"即可

也可以直接添加对应需要展示为Dialog style的activity的android:theme属性值为:android:theme="@android:style/Theme.Dialog"

7、两个activity之间怎样传递数据

在Intent的对象中增加要传递的参数即可

在Intent对象的请求中加入键值对,对应名字.putExtra(“键值对的名字","键值对的值");在另一个activity中将Intent的请求中的数据取出来:

Intent intent= getIntent();String value = intent.getStringExtra("testIntent")

8、在同一个程序,但不同的activity中是否可以放在不同的Task任务栈中?

可以放在不同的Task中。需要为不同的activity设置不同的taskaffinity属性,启动activity的Intent需要包含FLAG_ACTIVITY_NEW_TASK标记
全部回答
当然可以。
可以,通过指定Activity的affinity就可以分配一个指定的Task。
可以,启动模式为:singleInstance
1、什么是Activity 通俗一点说Activity就是一个界面,这个界面里面可以放置各个控件。Activity的界面也是用xml表示,放置在res->layout下面。每生成一个新的Activity后,我们需要在AndroidManifest.xml中注册一下这个Activity。 2、请描述一下Activity的生命周期 onCreate(Bundle savedInstanceState):创建Activity时调用,设置在该方法中,还以Bundle的形式提供对以前存储的任何状态的访问。 onStart():activity变为在屏幕上对用户可见时调用 onResume():activity开始与用户交互时调用(无论是启动还是重新启动一个activity,该方法总是被调用) onPause():activity被暂停或者收回cpu和其他资源时调用,该方法用于保存活动状态的,也是保护现场,压栈吧 onStop():activity被停止并转为不可见阶段及后续的生命周期事件时调用。 onRestart():重新启动activity时调用,该活动仍在栈中,而不是启动新的activity onDestroy():activity被完全从系统内存中移除时调用 3、两个Activity之间跳转时必然会执行的是哪几个方法: onCreate():在activity生命周期开始时调用 onRestoreInstanceState():用来恢复UI状态 onRestart():当activity重新启动时调用 onStart():当activity对用户即将可见时调用 onResume():当activity与用户交互时,绘制界面 onSaveInstanceState():当activity即将移除栈顶保留UI状态时被调用 onPause():暂停当前活动的activity,提交持久数据的改变,停止动画和其他占用CPu资源的东西,由于下一个activity在这个方法返回之前不会resume,所以这个方法的代码执行要快 onStop():activity不再可见时调用 onDestroy():在activity销毁栈时被调用的最后一个方法 4、横竖屏幕切换时候activity的生命周期 ①不设置activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,且竖屏时会执行两次 ②设置activity的android:configChanges=”orientation"时,切屏还是会调用各个生命周期,切横屏,竖屏时只会执行一次 ③设置activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法 5、你后台的Activity被系统回收怎么办? 系统会帮我们记录下回收之前Activity的状态,再次调用被回收的Activity就要重新调用onCreate()方法,不同于直接启动的是这回onCreate()里面带上参数savedInstanceState,savedInstanceState是一个Bundle对象,基本上可以把它理解为系统帮你维护的一个map对象,使用它可以恢复到回收前的状态 6、如何将一个activity设置为窗口的样式 ①在你的style.xml文件中可以新建一如下的类似Dialog的style: <style name="Theme.FloatActivity" parent="android:style/Theme.Dialog></style> ②在AndroidManifest.xml中在你需要显示为窗口的activity中添加如下属性: android:theme="@style/Theme.FloatActivity"即可 也可以直接添加对应需要展示为Dialog style的activity的android:theme属性值为:android:theme="@android:style/Theme.Dialog" 7、两个activity之间怎样传递数据 在Intent的对象中增加要传递的参数即可 在Intent对象的请求中加入键值对,对应名字.putExtra(“键值对的名字","键值对的值");在另一个activity中将Intent的请求中的数据取出来: Intent intent= getIntent();String value = intent.getStringExtra("testIntent") 8、在同一个程序,但不同的activity中是否可以放在不同的Task任务栈中? 可以放在不同的Task中。需要为不同的activity设置不同的taskaffinity属性,启动activity的Intent需要包含FLAG_ACTIVITY_NEW_TASK标记
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
大岭森林派出所地址好找么,我有些事要过去
魔兽世界出现missing or corrupted data错误
()非曲直 ()行下效 ()针走线 ()不再
依据个人所得税法的相关规定,下列捐赠支出中
红宝石386小丑鱼
1-1不等于0为什么?
西峰山边防派出所地址好找么,我有些事要过去
森铁派出所地址有知道的么?有点事想过去
健康卡怎么办
双天线路由能不能关掉一根天线?
赵本山真的以后不上春晚了吗,
疲倦的倦的拼音
结婚内,送给老婆的礼物,离婚后属于她,还是
双泉派出所地址好找么,我有些事要过去
我电动车的后面的刹车蹄坏了怎么修才好
推荐资讯
一个跟我不熟的男生,突然邀请我参加他的十八
社科院的宋月红是个什么玩意
为什么耳朵高过眉毛的人相对来说比那些耳朵低
宁民路地址有知道的么?有点事想过去
柿园村地址在什么地方,想过去办事
雅洁洗得好(大庆路福安消防劳保旁)地址在哪,
天龙八部手工所有属性点的加成疑问
临安兴农担保有限公司在什么地方啊,我要过去
优质采平台到底怎么样,有企业在使用吗?
保定金融高等专科学校录取分数线
你听阿桑的《叶子》时有什么感觉,会想到些什
网商银行收益权转让究竟是什么意思?钱还能取
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?