活动与服务之间通行:
借助onBind方法, 比如我在服务里写个下载的功能,想在活动中控制,并指导下载好多,
然后在MainActivity中,
private ServiceConnection sc = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
}
@Override
public void onServiceDisconnected(ComponentName name) {
}};
如果服务被开启和被绑定,同时,都要处理了才能销毁
前台服务:
服务几乎都是运行在后台的,当系统出现内存不足时,就可能回收掉正在后台运行的服务, 你想让他一直运行下去,可以考虑前台进程
它会一直有一个正在运行的图标在系统的状态栏显示, 有时不仅仅是为了服务不被回收,而有的打需求,
在服务的oncrete 方法中,写消息通知的那段代码, 后面是startForeground(1,notification)
IntentService 如果直接在服务中去吃力一些耗时操作的逻辑,很容易ANR ,启动了只有stopservice 和stopself 才会停, 可以在每个子线程结束的时候 加上stopself 要想他自动停止直接用Intentservice
新建一个类继承它,