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后一定能重启。
转:http://blog.sina.com.cn/s/blog_3fe961ae0100xhsl.html
分享到:
相关推荐
android Service中onStartCommand返回值.txt 有四种返回值,分别代表的含义
“对Service中onStartCommand方法返回值的探索”一文源码 博客地址:http://blog.csdn.net/u012975705/article/details/49932783
Android开发的过程中,每次调用startService(Intent)的时候,都会调用该Service对象的onStartCommand(Intent,int,int)方法,然后在onStartCommand方法中做一些处理。 从Android官方文档中,我们知道onStartCommand有...
【Android 进程保活】应用进程拉活 ( 系统 Service 机制拉活 | Service 组件 onStartCommand 方法分析 | 源码资源 ) https://hanshuliang.blog.csdn.net/article/details/115548051 博客源码快照
Android实现双进程守护,如何保证Service不被Kill,onStartCommand方法,返回START_STICKY,手动返回START_STICKY,亲测当service因内存不足被kill,当内存又有的时候,service又被重新创建,比较不错,但是不能保证...
你可以从一个activity或从其它应用的组件通过传递一个Intent(指定了要启动的服务)给startService()启动一个服务.Android系统然后调用service的onStartCommand()方法并且把Intent传递给它.(你永远不能直接调用...
B:onStartCommand返回值设置,getApplicationInfo().targetSdkVersion < Build.VERSION_CODES.ECLAIR ? START_STICKY_COMPATIBILITY : START_STICKY;C:前置服务,startForeground(int id, Notification n
android开发中sercie的简单事例 package com.example.servicedemoactivity; import android.app.Service; import android.content.Intent; import android.os.IBinder; import android.util.Log; public class ...
Android中的IntentService是继承自Service类的,在我们讨论IntentService之前,我们先想一下Service的特点: Service的回调方法(onCreate、onStartCommand、onBind、onDestroy)都是运行在主线程中的。当我们通过start...
1、在WorkService的onStartCommand中执行要保活的操作业务。 2、在初始化过程中调用KeepAliveManager.INSTANCE.startKeepAliveService(context); 3、停止服务调用KeepAliveManager.INSTANCE.stopKeepAliveSerice...
1. 通过 AlarmManager 来设置定制任务 2. 用广播去启动Service 3. Service中onStartCommand()方法执行任务
安卓的service的创建和调用其实和activity基本上一个样,很简单,只是继承Service类,在里面写一个onStartCommand方法,然后在该方法下写自己的代码就可以了。
应用组件(例如Activity)调用startService()来启动一个Service,将需要的参数通过Intent传给Service,Service将会在onStartCommand函数中获得Intent。 有两种方式可以创建started service,一种是扩展Service类,...
两种启动方式的区别2.Service启动流程3.Service与Activity怎么实现通信4.IntentService是什么,IntentService原理,应用场景及其与Service的区别5.Service 的 onStartCommand 方法有几种返回值?各代表什么意思?6....
计算机科学与技术系 实 验 报 告 专业名称 计算机科学与技术 课程名称 Android嵌入式软件开发 项目名称 Service 后台服务 班 级 计科一班 学 号 姓 名 同组人员 无 实验日期 2016.10.11 一、实验目的与要求: 【实验...
从Android 8.0开始系统为实现降低功耗,对后台应用获取...查了几篇博客说前台服务需要在service的onStartCommand方法中调用startForeground(int, Notification)才能开启前台服务。 但是onStartCommand需要走startserv
Android 其实无法做多绝对的不被后台kill掉,我们只能尽量使用一些操作提升不被kill的机会。 一、onStartCommand方法,返回START_STICKY START_STICKY 在运行onStartCommand后service进程被kill后,那将保留在开始...
Android 关于启动方式的service生命周期的onCreate()和onStartCommand()方法,说法正确的是( D ) A、当第一次启动的时候只会调用onCreate()方法 B、当第一次启动的时候只会调用onStartCommand() 方法 C、如果...
显示当前播放时间从 Service # onStartCommand 播放音乐URL 在 MainActivity 中设置点加元素必要时执行空检查等您可以通过通知操作服务您可以在锁定屏幕上操作服务例子错误示例AndroidManifest.xml < manifest>< ...
14.5.4 在onStartCommand中指定服务标志 14.5.5 挑选合适的粘滞性 14.5.6 从两个位置控制唤醒锁 14.5.7 长期运行的服务的实现 14.5.8 测试长期运行的服务 14.6 代码编译说明 14.6.1 从ZIP文件...