android - android:persistent 与 Service.START_STICKY 有什么区别?
问题描述
这个博客清楚地解释了两者之间的区别
- 服务。START_STICKY
- 服务。START_NOT_STICKY
- Service.START_REDELIVER_INTENT
现在读完这篇文章后,当我看到这个带有 AndroidManifest.xml 的服务声明时,我感到很困惑
<service android:name="com.amazon.tablet.myapplication.MyService" android:persistent="true"></service>
到目前为止,我假设/理解,进行android:persistent=true
服务声明会将服务变为持久性并在它出现故障时重新启动。但我无需独自一人persistent=true
就能做到这一点。Service.START_STICKY
android:persistent=true
与这些属性有什么区别Service.START_STICKY
,Service.START_REDELIVER_INTENT
?重新创建服务后,应用程序是否会再次重新启动?我试图了解在重新创建服务时是否会创建应用程序的过程。
注意:我用属性声明了服务
android:persistent=true
并尝试用它杀死我的应用程序,adb shell kill <pid>
但它被重新创建了。我想知道/不理解在这种情况下进行服务娱乐与应用程序娱乐之间的区别。
解决方案
1. 服务.START_STICKY
这将等待启动服务的意图(一旦与此相关的进程被杀死)
2. android:persistent="true"
这将使服务相应地保持为真/假,并且这不会等待意图再次建立服务(一旦由于 LMK 和所有原因而被杀死)
3. 服务与应用持久化
通过使服务持久化,这将使与之关联的进程持久化。与应用程序相同的情况。
当您为您的服务声明一个单独的进程时,您的应用程序将不会持久化。
推荐阅读
- javascript - Jest spyOn() 调用实际函数而不是模拟函数
- php - Bash CURL 到 php
- linux - 即使我在文件上使用 `/bin/cp` 和 chmod 777,bash 脚本中的复制也会失败
- angular - 为什么我的对象在我用数据填充后是空的?
- python - 使用 RegEx 匹配日期
- python - https://github.com/ildoonet/tf-pose-estimation 步骤给了我错误
- eclipse - Firefox 没有通过 Selenium WebDriver 启动 URL
- android - 按下完成后 EditText 被清除并且行为怪异
- javascript - 页脚总和数据不能对服务器端数据表中的所有数据求和
- java - JSch 为 Java 生成的密钥对提供无效的私钥错误