Android 上本地服务与 Activity 之间的通信
Communication between Local Service and Activity on Android
我有一个 Activity 启动本地服务进行后台操作。
它们都驻留在同一个进程上,所以它们之间的通信应该更简单。
但是,我不明白如何根据自己的需要实现通信:
Activity的行为:
创建时,检查服务是否已经 运行:
- 如果已经是 运行,请禁用“开始”按钮,并启用“停止”按钮。
- 否则,启用“开始”按钮并禁用“停止”按钮。
- 按下开始按钮时:
启动服务,并等待服务通知它已完成内部初始化。 (可能需要 10 秒以上)
- 按下停止按钮时:停止服务。
我的问题是如何让 Activity 无需忙等待即可收听服务。
我可以按照这个link使用IBinder,但是我得忙着等
我很乐意提出建议。
您可以检查此 link 以查看服务是否 运行
How to check if a service is running on Android?
在通信的情况下,您可以使用 localbroadcast
我有一个 Activity 启动本地服务进行后台操作。
它们都驻留在同一个进程上,所以它们之间的通信应该更简单。
但是,我不明白如何根据自己的需要实现通信:
Activity的行为:
创建时,检查服务是否已经 运行:
- 如果已经是 运行,请禁用“开始”按钮,并启用“停止”按钮。
- 否则,启用“开始”按钮并禁用“停止”按钮。
- 按下开始按钮时: 启动服务,并等待服务通知它已完成内部初始化。 (可能需要 10 秒以上)
- 按下停止按钮时:停止服务。
我的问题是如何让 Activity 无需忙等待即可收听服务。
我可以按照这个link使用IBinder,但是我得忙着等
我很乐意提出建议。
您可以检查此 link 以查看服务是否 运行 How to check if a service is running on Android? 在通信的情况下,您可以使用 localbroadcast