关于踩的坑

Service 启动后会莫名传空 IntentonStartCommand() 方法,由于我需要获取 Intent 内包含的参数,会导致报错。

生命周期

生命周期
Refer: https://developer.android.com/guide/components/services#Lifecycle

我们一般重写一些方法用于特定的目的,以下是我的偏好列表。

  • onCreate() 在服务启动前进行一些常量的初始化操作
  • onStartCommand() 用于服务的具体内容,由于服务实例创建后可重复启动,还可通过 Intent 传递参数
  • onDestroy() 用于服务销毁时执行的操作

问题的复现

系统未经预料地停止 Service 后即出现报错。

问题的分析

onStartCommand() 需要返回一个整数,以表示系统在该服务被系统意外停止后而进行的操作。

以下是各操作的名称及描述。

问题的解决

START_NOT_STICKY 改为 START_REDELIVER_INTENT 即可。


0 条评论

发表评论

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据