Service启动方式之startService,及注意事项

Service启动方式之startService

详见:http://www.2cto.com/kf/201302/190157.html


Android开发的过程中,每次调用startService(Intent)的时候,都会调用该Service对象的onStartCommand(Intent,int,int)方法,然后在onStartCommand方法中做一些处理.这是大家常用的方式,但是一定要注意下面这个返回值:

START_REDELIVER_INTENT:重传Intent。使用这个返回值时,如果在执行完onStartCommand后,服务被异常kill掉,系统会自动重启该服务,并将Intent的值传入。

案例:本人通过startService(Intent)来传递socket消息时,使用START_REDELIVER_INTENT作为onStartCommand的返回值时,出现问题如下:

   1、当通过强制退出(即杀进程)的方式关闭app后,再重新启动app;此时,系统重启服务会将上一次杀死进程钱所有发送的消息都发送一次,

    这个是不可忍受的,随时导致app异常。

你可能感兴趣的:(Android)