service ----onstartcommand

最近在做Android项目时,在server中需要重写onstartcommand,什么时候调用,很纠正。查了一下文档。解释如下:

这个是在startService (Intent service) 方法之后由系统调用的,传入相关的参数,类似activity的onStart。

在创建Service后也就是onCreate后调用,创建一次后以后每次启动该服务都直接调用onstartcommand。

是android2.0以后引进的取代service的onstart()方法,也就是说在之前的版本是没有的,如下面这个帖子说明的情况

在Mars的Android视频的25集Service中,继承了Service类。依视频写代码,却发现没有

public intonStartCommand (Intent intent, int flags, int startId)可以覆写。查了一下API文档,

 

在示例代码的onStart方法注释之中有这样两句话:

 

1 // This is the old onStart method that will be called on the pre-2.0 

2 // platform. On 2.0 or later we override onStartCommand() so this 

3 // method will not be called. 


  看到这里才恍然大悟,原来onStart方法是在Android2.0之前的平台使用的.在2.0及其之后,则需重写onStartCommand方法,同时,旧的onStart方法则不会再被调用.


  在文档中,onStart方法的解释是以下两句话:

 This method is deprecated.

 Implement onStartCommand(Intent, int, int) instead.


  意思就是不赞成使该方法。该方法的实现已经被onStartCommand所代替。


  看来还是以前的惯性思维啊。之前建工程的时候一直都是选以1.6为最低的平台,这次也选了这个,难怪会在重写的时候没有这个方法了。另外,看到视频后面,在AndroidManifest.xml中果然看到了这样一句:


1 </pre><pre name="code" class="html"><use-sdk android:minSdkVersion="7" />


  最低平台为7,貌似就是Android2.1啊。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值