一、什么时候绑定,什么时候不绑定?
当 Activity 需要与 Service 通信时,要通过绑定来进行通信。广播也可以但效率较低根据实际情况定
最简单的场景就是后台做一些定时任务,不绑定直接启动就用了
?
二、
用法
<service
? ? ? ? ? ? android:name="这里是名称"
? ? ? ? ? ? android:exported="false"
?</service>
在 Activity 里启动
Intent intent = new Intent(this, ?MyService.class);
startService(intent);
这种方式下由于没有绑定客户端,只能退出程序时自动停止或者 stopSelf(),无须手动 stop.
适用于数据里较大较耗时的初始化工作、一些后台的轮询任务等。
?
如果希望程序退出后服务还能继续,修改配置
<service
? ? ? ? ? ??android:name="这里是名称"
? ? ? ? ? ??android:exported="false"
? ? ? ? ? ? android:enabled="true"
? ? ? ? ? ??android:process="system"
?</service>
? ? ? ? ? ? 在启动的时候加入标记intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
?
?
?
?
?
?
?
?