Android开发的过程中,每次调用startService(Intent)的时候,都会调用该Service对象的onStartCommand(Intent,int,int)方法,然后在onStartCommand方法中做一些处理。然后我们注意到这个函数有一个int的返回值,这篇文章就是简单地讲讲int返回值的作用。
从Android官方文档中,我们知道onStartCommand有4种返回值:
START_STICKY:如果service进程被kill掉,保留service的状态为开始状态,但不保留递送的intent对象。随后系统会尝试重新创建service,由于服务状态为开始状态,所以创建服务后一定会调用onStartCommand(Intent,int,int)方法。如果在此期间没有任何启动命令被传递到service,那么参数Intent将为null。
START_NOT_STICKY:“非粘性的”。使用这个返回值时,如果在执行完onStartCommand后,服务被异常kill掉,系统不会自动重启该服务。
START_REDELIVER_INTENT:重传Intent。使用这个返回值时,如果在执行完onStartCommand后,服务被异常kill掉,系统会自动重启该服务,并将Intent的值传入。
START_STICKY_COMPATIBILITY:START_STICKY的兼容版本,但不保证服务被kill后一定能重启
相关推荐
### Android Service 中 onStartCommand 返回值解析 在 Android 开发中,`Service` 是一个非常重要的组件,它可以在后台运行长时间的操作而不会为用户提供任何界面。`Service` 的生命周期方法之一是 `...
在Android应用开发中,Service是不可或缺的一部分,它用于在后台执行长时间运行的操作,即使用户离开了应用程序界面。在Service中,`onStartCommand()`方法扮演着关键角色,它控制着Service的启动行为和生命周期管理...
本篇将深入探讨 `ServiceSample` 示例代码,帮助你理解如何在 Android 中有效地使用 `Service`。 一、Service 基础 1. **Service 的生命周期**:Service 的生命周期主要由 `onCreate()`, `onStartCommand()`, `on...
在Android系统中,Native Service是一种运行在C/C++层的服务,它可以与Java层的应用程序进行交互,提供低级别的处理能力和高效能的计算。本项目"native-service-master.zip"显然是一个关于Android Native Service的...
1. 创建Service类:首先,你需要创建一个继承自Service的类,例如MyPlayerService,然后在该类中实现音乐播放的逻辑。 2. 播放器组件:通常使用MediaPlayer或ExoPlayer作为音频播放器。MediaPlayer适合简单的音频...
Android Service 是 Android 系统中的一种组件,它跟 Activity 的级别差不多,但是它不能自己运行,只能后台运行,并且可以和其他组件进行交互。Service 的启动有两种方式:context.startService() 和 context....
在Android应用开发中,Service是四大组件之一,它在后台执行长时间运行的操作,不与用户交互。本资料“Android应用源码之16.Service学习(2).zip”提供了关于Service的深入学习资源,通过源码分析,我们可以更深入地...
Service是Android系统中的一个重要组件,它是后台运行的程序,不提供用户界面,主要用于执行长时间运行的任务,例如播放音乐、网络通信、定期数据同步等。在Android应用开发中,Service的使用是不可或缺的一部分,...
Service是Android系统中的一个重要组件,它是用来在后台执行长时间运行任务而不会被用户界面直接交互的。在Android开发中,Service常用于实现如播放音乐、网络通信等需要长时间运行的功能,即使用户离开应用,...
1. **定义Service类**:继承自`android.app.Service`类,并重写其中的关键方法,如`onCreate()`(服务创建时调用)、`onStartCommand()`(接收启动命令时调用)和`onDestroy()`(服务销毁时调用)。 2. **在...
1. 创建Service:在AndroidManifest.xml中声明Service,并创建一个新的Service类,继承自android.app.Service。 2. 启动Service:在需要启动Service的地方调用startService(),传入一个Intent对象,Intent中包含...
通过以上介绍,可以看出 Android Service 和 JNI 在 Android 开发中扮演着重要的角色,它们不仅能够扩展应用程序的功能,还能够在一定程度上优化性能和资源管理。开发者可以根据实际需求灵活运用这两种技术来构建高...
创建自定义Service时,需要继承自Android的Service类,并重写onStartCommand()或onBind()方法。onStartCommand()用于处理通过startService()启动的服务,而onBind()则为绑定服务提供接口。 在AndroidManifest.xml中...
在Android应用开发中,Service是不可或缺的一个核心组件,主要用于实现应用程序在后台长时间运行的任务,即使用户界面不再活跃或应用程序被关闭。Service不同于Activity,它不包含用户界面,但可以与其他组件(如...
在Android应用开发中,Service是四大组件之一,它在后台执行长时间运行的操作,不与用户界面交互。Service的学习对于深入理解Android系统以及构建高效、稳定的应用至关重要。本篇将主要探讨Service的基本概念、使用...
在Android应用开发中,Service组件是四大组件之一,它在后台执行长时间运行的任务,即使用户与应用程序交互的界面已经关闭。"android_service.rar"这个压缩包文件很可能包含了关于如何使用和理解Android Service的...
Service是Android系统中的一个核心组件,它主要用于在后台执行长时间运行的任务,比如音乐播放、定时任务、网络通信等。在Android应用开发中,理解和熟练掌握Service的使用是至关重要的。本压缩包“Android应用源码...