码迷,mamicode.com
首页 > 移动开发 > 详细

Android -- Service

时间:2016-08-20 23:07:30      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:

@、Context.startService(Intent)

技术分享

lifecycle callback:

1、onCreate(...)

2、onStartCommande(Intent, int, int)

3、onDestroy()

stop service:

1、Service.stopSelf() / stopSelf(int)

2、Context.stopService(Intent)

 

@、Context.bindService

技术分享

lifecycle callback:

1、onBind(...)

2、onUnbind()

stop service:

1、Context.unbindService() (当所有客户端都执行完此操作,服务会自动关闭,除了调用Service.startForeground()的情况。)

 

@、保持Service不被终止

在服务里调用startForeground(),这种情况要正确调用stopForeground()来终止服务,否则服务一直运行。

 

@、与Activity通信:

1、使用sendBroadcast(Intent)。

2、在Service中添加会调接口及接口实例及实例的set方法,而Activity实现此接口。这种方法可结合Locally Bound Service模式进行使用,这样可以在Activity中直接调用Service的方法。

 

@、IntentService

1、HandlerThread,Handler,Message模式。

2、继承IntentService只需要实现onHandleIntent(Intent)方法。

3、以上两点决定了,使用IntentService不用再创建线程,而onHandleIntent每次只能处理一个Intent,因此如果存在耗时长的Intent,则此IntentService的其他Intent就有可能被阻塞。

 

@、自定义Service实现并行服务

1、在自定义Service中添加ExecutorService实例成员,通过它的excute(Runnable)来执行任务。通过startForeground(),保持服务后台运行,通过计数成员变量记录当前任务数量,根据当前任务数量决定是否调用stopForeground()来终止服务。

 

注:关于Service的示例见Android Programming: Pushing the Limits -- Chapter 6: Services and Background Tasks

 

Android -- Service

标签:

原文地址:http://www.cnblogs.com/yarightok/p/5790492.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!