💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
## 什么是Activity? Activity是android的四大组件中最常见的部分,是Android用于交互的部分。Activity有四种状态:Active/Runing、Paused、Stoped、Killed。主要有七个生命周期方法。通过Intent与其他Activity或者组件通信。 ## 请描述一下Activity生命周期。 Activitiy的生命周期方法主要有七个: onCreate()、onRestart()、onStart()、onResume()、onPause()、onStop()、onDestory()。 ## 两个Activity之间跳转时必然会执行的是哪几个方法。 这个问题与 从A跳转到B需要执行那些生命周期方法 的意思是相同的。分为两种情况: 1. B不透明时,A执行除onDestory之外的全部方法,B执行到onResume方法; 2. B透明时,A执行到onPause方法,B执行到onResume方法。 ## 横竖屏切换时候Activity的生命周期。 ## 如何将一个Activity设置成窗口的样式。 在AndroidManifest.xml中在你需要显示为窗口的activity中添加如果属性:android:theme="@style/Theme.FloatActivity" 即可 ## 你后台的Activity被系统回收怎么办?如果后台的Activity由于某原因被系统回收可了,如何在被系统回收之前保存当前状态? onSaveInstanceState在这个方法中保存信息。在onCreate中判断savedInstanceState是否为空,不为空就去出来。 ## 如何退出Activity?如何安全退出已调用多个Activity的Application? 退出单个Activity调用finish()方法。 ## 两个Activity之间怎么传递数据? 可以通过Intent,Bundle或者SharedPreferences都可以传递数据。 ## 怎么在启动一个Activity时就启动一个service? 在activity的onCreate里写 startService(xxx); 然后 this.finish();结束自己.. 这是最简单的方法 可能会有屏幕一闪的现象,如果UI要求严格的话用AIDL把 根据service与activity的生命周期,选择在onCreate或onResume中startService;当然要记得stopService. ## 同一个程序,但不同的Activity是否可以放在不同的Task任务栈中? 可以放在不同的Task中。需要为不同的activity设置不同的taskaffinity属性,启动activity的Intent需要包含FLAG_ACTIVITY_NEW_TASK标记 ## Activity怎么和service绑定,怎么在activity中启动自己对应的service? startService()一旦被创建 调用着无关 没法使用service里面的方法 bindService () 把service 与调用者绑定,如果调用者被销毁, service会销毁 bindService() 我们可以使用service 里面的方法 bindService(). 让activity能够访问到service里面的方法