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异常。