[Java、Android面试]_17_Fragment和Service生命周期

本人今年参加了很多面试,也有幸拿到了一些大厂的offer,整理了众多面试资料,后续还会分享众多面试资料。

整理成了面试系列,由于时间有限,每天整理一点,后续会陆续分享出来,感兴趣的朋友可关注+收藏

文章目录

    • [1. Fragment生命周期](#1. Fragment生命周期)
    • [2. Service](#2. Service)

1. Fragment生命周期

(1)onAttach(): 当 Fragment 与它的宿主 Activity 关联时调用。

(2)onCreate(): 在创建 Fragment 时调用,用于进行初始化操作。

(2)onCreateView(): 创建 Fragment 的用户界面(View),通常在这里加载布局文件。

(3)onActivityCreated(): 当宿主 Activity 完成 onCreate() 方法后调用,通常在这里进行与 Activity 相关的初始化。

(4)onStart(): Fragment 可见但还未与用户交互时调用。

(5)onResume(): Fragment 获得焦点并开始与用户交互时调用。

(6)onPause(): Fragment 失去焦点并不再与用户交互时调用。

(7)onStop(): Fragment 完全不可见时调用。

(8)onDestroyView(): 销毁 Fragment 的用户界面(View)。

(9)onDestroy(): 在销毁 Fragment 时调用。

(10)onDetach(): 当 Fragment 不再与宿主 Activity 关联时调用。

2. Service

· 服务是在后台执行长时间运行操作的组件,不与用户界面直接交互。

· 它可以执行网络请求、播放音乐、定位等任务,而不会阻塞主线程。

· 服务可以在后台运行,即使应用程序不再可见

Service 有以下生命周期方法:

(1)onCreate():

· 当 Service 第一次创建时调用,用于初始化操作,如初始化变量、设置资源等。

(2)onStartCommand(Intent intent, int flags, int startId):当调用 startService() 方法启动 Service 时,系统会调用该方法。

· 该方法在主线程中执行,用于处理后台任务。可以通过 Intent 参数传递数据。

· 返回一个整数标志,用于定义 Service 的行为。

(3)onBind(Intent intent):

· 当调用 bindService() 方法绑定 Service 时,系统会调用该方法。

· 该方法返回一个 IBinder 对象,用于客户端与 Service 进行通信。

(4)onUnbind(Intent intent):

· 当使用 unbindService() 方法解绑 Service 时,系统会调用该方法。

· 返回 true 表示允许重新绑定,返回 false 表示不允许。

(5)onDestroy():

· 当 Service 被销毁时调用,通常在这里释放资源、停止线程等。

Service 的生命周期方法在不同的使用场景下会有不同的触发时机,开发者可以根据自己的需求在合适的生命周期方法中执行相应的操作。需要注意的是,Service 运行在主线程中,因此长时间运行的任务应该在子线程中进行,以避免阻塞主线程。另外,使用前台 Service 可以提高 Service 的优先级,避免被系统杀死。

相关推荐
天天爱吃肉82181 分钟前
新能源汽车热管理核心技术解析:冬季续航提升40%的行业方案
android·python·嵌入式硬件·汽车
eternal__day15 分钟前
Spring Cloud 多机部署与负载均衡实战详解
java·spring boot·后端·spring cloud·负载均衡
颜淡慕潇19 分钟前
Redis 实现分布式锁:深入剖析与最佳实践(含Java实现)
java·redis·分布式
程序员秘密基地25 分钟前
基于vscode,idea,java,html,css,vue,echart,maven,springboot,mysql数据库,在线考试系统
java·vue.js·spring boot·spring·web app
何中应26 分钟前
【设计模式-5】设计模式的总结
java·后端·设计模式
快乐觉主吖36 分钟前
Unity的日志管理类
android·unity·游戏引擎
明月看潮生43 分钟前
青少年编程与数学 01-011 系统软件简介 06 Android操作系统
android·青少年编程·操作系统·系统软件·编程与数学
吾日三省吾码44 分钟前
Spring 团队详解:AOT 缓存实践、JSpecify 空指针安全与支持策略升级
java·spring·缓存
snetlogon201 小时前
JDK17 Http Request 异步处理 源码刨析
android·网络协议·http
风象南1 小时前
SpringBoot的5种日志输出规范策略
java·spring boot·后端