外观
Android 核心
组件、生命周期、任务栈与进程。
本领域共 43 条问答。先读与你当前场景相关的主题,再用全文搜索查找具体问题。
应用生命周期与 Activity 管理
- 如何理解请详细描述 Activity 从创建到销毁的完整生命周期回调顺序及其触发场景?
- 当设备旋转时,Activity 的生命周期如何变化?如何避免不必要的重建?
- 在什么情况下会调用 onRestart() 方法?它与 onCreate() 的区别是什么?
- Fragment 的生命周期与宿主 Activity 的生命周期有何关联和差异?
- 为什么在 Fragment 中使用 getChildFragmentManager() 而不是 getFragmentManager()?
- 请解释 Android 中四种启动模式(standard, singleTop, singleTask, singleInstance)的区别和适用场景?
- 使用 singleTask 模式时,如果目标栈中已存在该 Activity,会发生什么?如何控制其行为?
- 在多任务环境下,singleInstance 模式可能导致哪些用户体验问题?
- 除了 Bundle,还有哪些方式可以在 Activity 之间安全地传递复杂对象?
- 如何通过 Intent Filter 实现应用间的隐式启动?如何避免潜在的安全风险?
- 什么是 PendingIntent?它与普通 Intent 在权限和使用场景上有何不同?
- 如何实现一个类似微信的“返回首页”功能,清空中间所有 Activity?
- 使用 finishAffinity() 和 moveTaskToBack() 的区别是什么?各自适用于什么场景?
- 在 Android 10+ 中,如何处理后台 Activity 被系统回收后的状态恢复?
通知系统与前台服务
- 为什么 Android 8.0 要求必须创建通知渠道?
- 如何为不同优先级的通知设置不同的声音、震动和图标?
- 如何实现通知的点击跳转、删除回调和撤销功能?
- 什么是前台服务?它与普通服务的主要区别是什么?
- 在 Android 10+ 中,启动前台服务需要满足哪些前提条件?
- 如何在前台服务中更新通知内容(如播放进度)?
- 如何在通知中添加操作按钮(Action)?
- 什么是 BigTextStyle 和 InboxStyle?它们适用于什么场景?
- 如何实现通知的折叠展开(Expandable Notification)?
- JobScheduler 与 AlarmManager 在定时任务调度上的区别是什么?
- 如何使用 JobScheduler 实现网络可用时才执行的任务?
- 为什么在 Android 8.0+ 中 AlarmManager 的 setExact() 行为有所改变?
- Doze 模式如何影响后台服务和通知的推送?
- 如何判断设备是否处于 Doze 模式?
- 如何为关键通知申请豁免 Doze 模式?
Android 核心
- Activity 的生命周期怎样变化?
- 四大组件分别负责什么?
- startService 和 bindService 有什么区别?
- 触摸事件怎样分发?
- 启动模式和 Intent Flag 怎样影响任务栈?
- ContentProvider 为什么可能拖慢启动?
- 异步任务该用哪种方式?
- Android 适配为什么要同时看系统版本和 targetSdk?
- 系统应用、平台签名、特权权限分别意味着什么?