Android系统交互与应用启动全解析
1. Activity与Service的交互
在Android开发中,Activity与Service的交互是一个重要的部分。当Activity可见时,它可以通过 ServiceConnection 接口绑定到 TrackerService 。这个接口提供了绑定和解除绑定操作完成时的回调方法。一旦Service绑定到Activity,就可以直接调用Service暴露的所有公共方法。
不过,仅靠绑定并不能让Service长期运行。如果仅通过Binder接口访问Service,它会随着Activity的生命周期自动创建和销毁。为了让Service在Activity不在内存中时也能持续运行,需要在绑定之前通过 startService() 方法显式启动Service。向已经运行的Service发送启动命令没有问题,因此也可以在 onResume() 方法中安全地执行此操作。
在 onPause() 方法中,会检查用户是否激活了跟踪功能。如果没有激活,会先停止Service,这样可以避免Service在不需要时一直占用内存。
下图展示了Activity与Service交互的流程:
graph TD;
A[Activity启动] --> B[调用startService()启动Service];
B --> C[调用bindService()绑定Service];
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



