- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
START_STICKY
和有什么区别?和 START_NOT_STICKY
在android中实现服务时?谁能指出一些标准的例子..?
最佳答案
这两个代码仅在手机内存不足并在服务完成执行之前终止服务时才相关。 START_STICKY
告诉操作系统在它有足够的内存后重新创建服务,并以空 Intent 再次调用 onStartCommand()
。 START_NOT_STICKY
告诉操作系统不要再费心重新创建服务。还有第三个代码 START_REDELIVER_INTENT
告诉操作系统重新创建服务并将相同的 Intent 重新传递给 onStartCommand()
。
Dianne Hackborn 的这篇文章比官方文档更好地解释了这个背景。
来源:http://android-developers.blogspot.com.au/2010/02/service-api-changes-starting-with.html
The key part here is a new result code returned by the function,telling the system what it should do with the service if its processis killed while it is running:
START_STICKY is basically the same as the previous behavior, where theservice is left "started" and will later be restarted by the system.The only difference from previous versions of the platform is that itif it gets restarted because its process is killed, onStartCommand()will be called on the next instance of the service with a null Intentinstead of not being called at all. Services that use this mode shouldalways check for this case and deal with it appropriately.
START_NOT_STICKY says that, after returning from onStartCreated(), ifthe process is killed with no remaining start commands to deliver,then the service will be stopped instead of restarted. This makes alot more sense for services that are intended to only run whileexecuting commands sent to them. For example, a service may be startedevery 15 minutes from an alarm to poll some network state. If it getskilled while doing that work, it would be best to just let it bestopped and get started the next time the alarm fires.
START_REDELIVER_INTENT is like START_NOT_STICKY, except if theservice's process is killed before it calls stopSelf() for a givenintent, that intent will be re-delivered to it until it completes(unless after some number of more tries it still can't complete, atwhich point the system gives up). This is useful for services that arereceiving commands of work to do, and want to make sure they doeventually complete the work for each command sent.
关于android - START_STICKY 和 START_NOT_STICKY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9093271/
我正在构建一个应用程序,但是在返回 START_STICKY; 行后遇到了一条错误,指出“无法访问代码”;从 if (Config.DEVELOPMENT) { 开始,我不确定如何解决这个问题,以便我
因此,如果我理解正确,START_STICKY 之间的区别和 START_NOT_STICKY是第一个将由系统重新启动,以防它杀死它。 有谁知道当我使用 Process.killProcess(Pro
我希望确保我的服务在后台运行,即使在用户关闭应用程序(从任务管理器或相关应用程序)后也是如此。我正在尝试实现 START_STICKY 但不知道如何正确覆盖 startService 方法以使其正常工
关于使用START_STICKY在 Android 服务中。 官方文档说: if this service's process is killed while it is started (after
我有一个包含长期运行服务的应用程序。我已从该服务的 onStartCommand 方法返回 START_STICKY。现在我想测试 START_STICKY 是否正常工作。那么我如何测试我的服务由于内
Foreground Service 具有非常高的优先级,不太可能被系统杀死,所以在 onStartCommand< 中返回 START_STICKY 有什么意义吗?/? 编辑:这个问题不是关于 ST
我有一个作为网络服务器运行的应用程序。该应用有一项服务是 START_STICKY 我希望该服务始终运行网络服务器(在通知中向用户提供了停止它的选项)。 问题是当我关闭我的应用程序时,服务器会重新启动
我问了一个关于保持服务存活的问题,但我没有找到解决方案,所以我有另一个更简单的问题。 android 文档说如果 android 在低内存状态下返回 onStartCommand 时使用 START_
I have read this answer and it's not useful in my case. 我已经创建了一个简单的服务,它除了记录方法名称外什么都不做。我从我的 Activity
在我的 Android 应用程序中,我有一个服务应该在它被杀死后自动重启。我发现这可以使用 START_STICKY 来完成。 但显然当服务自动重启时, Intent 是null。然而,问题在于 In
我无法理解 android 关于服务的新功能。在 google 文档中,在 oreo 之后,开发人员必须在应用程序处于后台时使用前台服务来启动服务。 我找到了这个描述。 '从 Android O 开始
我正在开发一款播放音乐的 Android 应用。 到目前为止,我已经从负责播放音乐的服务的 onStartCommand 返回了 START_STICKY,因为 Eclipse 中的工具提示指出:“此
在我的服务中,我已返回 START_STICKY 以使我的 Service 在我终止应用程序后再次重启。 我已经测试过,它可以在设备 Samsung、Sony、LG 中使用,但在 Xiaomi 中无法
我见过许多 android 服务示例,其中返回 START_STICKY 用于在启动时启动应用程序,但无论如何我可以对 IntentService 使用相同的示例。我知道 Service 方法在主 U
我的应用程序使用第三方库,该库启动了 START_STICKY 服务。所以即使应用被销毁,服务被杀死,它也会自动重启。 我的问题是,有什么方法可以像更改应用程序一样更改此服务生命周期吗?服务在应用启动
我希望 android 应用程序运行后台服务,每分钟执行一次 HTTP 请求,并在服务器返回特定代码时显示通知。 我这样做了,并将服务器标记为 START_STICKY 以将其保存在内存中。但是几天后
我需要让我的服务始终在后台运行。并使用“startService()”函数启动我的服务。无论应用程序的状态如何,我都不想重新启动服务。 这是我的观察。 START_STICKY > 如果应用程序启动,
我在应用程序中使用服务来监听用户按下他/她的电源按钮的次数。该实现在所有设备上运行良好。但是当我在 Android Kitkat 上测试该应用时,我发现了一些问题。 一旦我将应用程序从最近使用的应用程
START_STICKY 和有什么区别?和 START_NOT_STICKY在android中实现服务时?谁能指出一些标准的例子..? 最佳答案 这两个代码仅在手机内存不足并在服务完成执行之前终止服务
不知何故,我很难解析 official description START_STICKY 标志: Constant to return from onStartCommand(Intent, int,
我是一名优秀的程序员,十分优秀!