Service api

public int onStartCommand (Intent intent, int flags, int startId)
Added in  API level 5

调用startService(Intent)启动service的时候,onStartCommand会被系统回调。回调参数Intent为startService(Intent)中的参数,和一个用来表示这次请求的整数token。不要直接调用次方法。

为了向后兼容,默认实现了onStart(Intent,int)并且返回 START_STICKY or START_STICKY_COMPATIBILITY.

如果你的应用是运行在level 5 之前的,你可以仿照下面的处理方法。onStartCommand(Intent intent, int flags, int startId)方法在level 5后面的系统中被调用。

// This is the old onStart method that will be called on the pre-2.0
// platform.  On 2.0 or later we override onStartCommand() so this
// method will not be called.
@Override
public void onStart(Intent intent, int startId) {
    handleCommand(intent);
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    handleCommand(intent);
    // We want this service to continue running until it is explicitly
    // stopped, so return sticky.
    return START_STICKY;
}

注意:上面的方法是在service的主线程中被调用的。service的主线程为ui线程。你应该避免主线程的事件循环被阻塞.当处理长时间的操作,网络交互,或大量磁盘io的操作的时候,应该用一个新的线程,或使用AsyncTask;

Parameters
  intent  与提供给startService(Intent)中的intent相同。如果service所在的进程被销毁,并且该方法之前返回的不是START_STICKY_COMPATIBILITY重新被启动intent可能为空。
  flags  start 请求的附加数据。可能是0, START_FLAG_REDELIVERY, or START_FLAG_RETRY.
  startId 代表这次请求的数字标识。在stopSelfResult(int)中使用
Returns
  • The return value indicates what semantics the system should use for the service's current started state. It may be one of the constants associated with the START_CONTINUATION_MASK bits.
  • 返回值表明系统如何处理当前启动的service的启动状态。返回值可能与START_CONTINUATION_MASK位相关的常量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值