所用时间为Android业务被强行杀死后重新启动时间为、重新启动、业务、Android

2023-09-07 16:01:25 作者:殺手

当我使用的应用程序,如GO省电强行杀掉服务在我的Andr​​oid手机上运行,​​并不是所有的服务重新启动具有相同的延迟。这是为什么?我如何采取减少对我的服务的时候重新启动?

When I use an app such as "Go Power Master" to forcibly kill Services running on my Android phone, not all Services restart with the same delay. Why is this and how do I reduce the time taken for my Service to restart?

在Facebook的服务是一个很好的例子。下面是它的LogCat中输出,而这是在连续杀死3倍。请注意,在大胆的重新启动时间:14992ms,5000毫秒,14963ms

The Facebook Service is a perfect example. Below is its LogCat output while it was killed 3 times in succession. Notice the restart times in bold: 14992ms, 5000ms, 14963ms.

我的服务没有得到这么好。下面是它的LogCat中输出,而这是在连续杀死3倍。请注意,以粗体显示更大的重启时间:23358ms,93432ms,373728ms

My Service is not treated so well. Below is its LogCat output while it was killed 3 times in succession. Notice the much larger restart times in bold: 23358ms, 93432ms, 373728ms.

完整的源$ C ​​$ C这个项目是在GitHub上。 https://github.com/ccoffey/NUIMWiFi

The complete source code for this project is on GitHub. https://github.com/ccoffey/NUIMWiFi

Facebook的LogCat中的

Facebook LogCat

05-10 14:09:33.381:I / ActivityManager(192):杀死PROC 7280:com.facebook.katana / 10077:终止后台 05-10 14:09:33.381:W / ActivityManager(192):坠毁服务com.facebook.katana调度启动/ .service.MediaUploadService在 14992ms 05-10 14:09:48.412:I / ActivityManager(192):启动PROC com.facebook.katana服务com.facebook.katana / .service.MediaUploadService:PID = 7847的uid = 10077导报= {3003,1006,1015 } 05-10 14:09:48.568:I / ActivityThread(7847):酒吧com.facebook.katana.provider.LoggingProvider:com.facebook.katana.provider.LoggingProvider 05-10 14:09:48.592:I / ActivityThread(7847):酒吧com.facebook.katana.provider.KeyValueProvider:com.facebook.katana.provider.KeyValueProvider 05-10 14:09:48.592:I / ActivityThread(7847):酒吧com.facebook.katana.provider.CacheProvider:com.facebook.katana.provider.CacheProvider 05-10 14:09:48.592:I / ActivityThread(7847):酒吧com.facebook.katana.provider.MailboxProvider:com.facebook.katana.provider.MailboxProvider 05-10 14:09:48.599:I / ActivityThread(7847):酒吧com.facebook.katana.provider.UserStatusesProvider:com.facebook.katana.provider.UserStatusesProvider 05-10 14:09:48.599:I / ActivityThread(7847):酒吧com.facebook.katana.provider.EventsProvider:com.facebook.katana.provider.EventsProvider 05-10 14:09:48.607:I / ActivityThread(7847):酒吧com.facebook.katana.provider.NotificationsProvider:com.facebook.katana.provider.NotificationsProvider 05-10 14:09:48.607:I / ActivityThread(7847):酒吧com.facebook.katana.provider.UserValues​​Provider:com.facebook.katana.provider.UserValues​​Provider 05-10 14:09:48.607:I / ActivityThread(7847):酒吧com.facebook.katana.provider.PagesProvider:com.facebook.katana.provider.PagesProvider 05-10 14:09:48.607:I / ActivityThread(7847):酒吧com.facebook.katana.provider.MobileEventLogProvider:com.facebook.katana.provider.MobileEventLogProvider 05-10 14:09:48.607:I / ActivityThread(7847):酒吧com.facebook.katana.provider.PushNotificationsProvider:com.facebook.katana.provider.PushNotificationsProvider 05-10 14:09:48.615:I / ActivityThread(7847):酒吧com.facebook.katana.provider.PhotosProvider:com.facebook.katana.provider.PhotosProvider 05-10 14:09:48.615:I / ActivityThread(7847):酒吧com.facebook.katana.provider.ConnectionsProvider:com.facebook.katana.provider.ConnectionsProvider 05-10 14:09:48.623:I / ActivityThread(7847):酒吧com.facebook.orca.notify.FbandroidMessagesForegroundProvider:com.facebook.orca.notify.FbandroidMessagesForegroundProvider 05-10 14:09:48.639:D / ACRA(7847):ACRA启用com.facebook.katana,intializing ... 05-10 14:09:48.654:D / ACRA(7847):寻找错误文件的/data/data/com.facebook.katana/app_acra-reports 05-10 14:09:48.701:W / nalizableReferenceQueue(7847):在com.facebook.orca.inject.binder.AnnotatedBindingBuilderImpl.a(AnnotatedBindingBuilderImpl.java:22) 05-10 14:09:48.701:W / nalizableReferenceQueue(7847):在com.facebook.orca.app.FbBaseModule.a(FbBaseModule.java:73) 05-10 14:09:48.701:W / nalizableReferenceQueue(7847):在com.facebook.orca.inject.AbstractModule.a(AbstractModule.java:19) 05-10 14:09:48.701:W / nalizableReferenceQueue(7847):在com.facebook.orca.inject.FbInjectorImpl.a(FbInjectorImpl.java:61) 05-10 14:09:48.701:W / nalizableReferenceQueue(7847):在com.facebook.orca.inject.FbInjectorImpl(FbInjectorImpl.java:41)。 05-10 14:09:48.701:W / nalizableReferenceQueue(7847):在com.facebook.orca.inject.FbInjector.a(FbInjector.java:40) 05-10 14:09:48.701:W / nalizableReferenceQueue(7847):在com.facebook.katana.FacebookApplication.onCreate(FacebookApplication.java:75) 05-10 14:09:48.928:I / SqliteDatabaseCpp(7847):源码返回:错误code = 21,味精=滥用在行105099 [8609a15dfa],DB = /数据/数据​​/ com.facebook.katana的/数据库/ prefs_db 05-10 14:09:53.810:I / ActivityManager(192):杀死PROC 7847:com.facebook.katana / 10077:终止后台 05-10 14:09:53.810:W / ActivityManager(192):坠毁服务com.facebook.katana调度启动/ .service.MediaUploadService中的 5000毫秒 05-10 14:09:58.842:I / ActivityManager(192):启动PROC com.facebook.katana服务com.facebook.katana / .service.MediaUploadService:PID = 7890的uid = 10077导报= {3003,1006,1015 } 05-10 14:09:59.053:I / ActivityThread(7890):酒吧com.facebook.katana.provider.LoggingProvider:com.facebook.katana.provider.LoggingProvider 05-10 14:09:59.060:I / ActivityThread(7890):酒吧com.facebook.katana.provider.KeyValueProvider:com.facebook.katana.provider.KeyValueProvider 05-10 14:09:59.060:I / ActivityThread(7890):酒吧com.facebook.katana.provider.CacheProvider:com.facebook.katana.provider.CacheProvider 05-10 14:09:59.076:I / ActivityThread(7890):酒吧com.facebook.katana.provider.MailboxProvider:com.facebook.katana.provider.MailboxProvider 05-10 14:09:59.076:I / ActivityThread(7890):酒吧com.facebook.katana.provider.UserStatusesProvider:com.facebook.katana.provider.UserStatusesProvider 05-10 14:09:59.076:I / ActivityThread(7890):酒吧com.facebook.katana.provider.EventsProvider:com.facebook.katana.provider.EventsProvider 05-10 14:09:59.076:I / ActivityThread(7890):酒吧com.facebook.katana.provider.NotificationsProvider:com.facebook.katana.provider.NotificationsProvider 05-10 14:09:59.076:I / ActivityThread(7890):酒吧com.facebook.katana.provider.UserValues​​Provider:com.facebook.katana.provider.UserValues​​Provider 05-10 14:09:59.076:I / ActivityThread(7890):酒吧com.facebook.katana.provider.PagesProvider:com.facebook.katana.provider.PagesProvider 05-10 14:09:59.084:I / ActivityThread(7890):酒吧com.facebook.katana.provider.MobileEventLogProvider:com.facebook.katana.provider.MobileEventLogProvider 05-10 14:09:59.084:I / ActivityThread(7890):酒吧com.facebook.katana.provider.PushNotificationsProvider:com.facebook.katana.provider.PushNotificationsProvider 05-10 14:09:59.084:I / ActivityThread(7890):酒吧com.facebook.katana.provider.PhotosProvider:com.facebook.katana.provider.PhotosProvider 05-10 14:09:59.084:I / ActivityThread(7890):酒吧com.facebook.katana.provider.ConnectionsProvider:com.facebook.katana.provider.ConnectionsProvider 05-10 14:09:59.092:I / ActivityThread(7890):酒吧com.facebook.orca.notify.FbandroidMessagesForegroundProvider:com.facebook.orca.notify.FbandroidMessagesForegroundProvider 05-10 14:09:59.154:D / ACRA(7890):ACRA启用com.facebook.katana,intializing ... 05-10 14:09:59.185:D / ACRA(7890):寻找错误文件的/data/data/com.facebook.katana/app_acra-reports 05-10 14:09:59.232:W / nalizableReferenceQueue(7890):在com.facebook.orca.inject.binder.AnnotatedBindingBuilderImpl.a(AnnotatedBindingBuilderImpl.java:22) 05-10 14:09:59.232:W / nalizableReferenceQueue(7890):在com.facebook.orca.app.FbBaseModule.a(FbBaseModule.java:73) 05-10 14:09:59.232:W / nalizableReferenceQueue(7890):在com.facebook.orca.inject.AbstractModule.a(AbstractModule.java:19) 05-10 14:09:59.232:W / nalizableReferenceQueue(7890):在com.facebook.orca.inject.FbInjectorImpl.a(FbInjectorImpl.java:61) 05-10 14:09:59.232:W / nalizableReferenceQueue(7890):在com.facebook.orca.inject.FbInjectorImpl(FbInjectorImpl.java:41)。 05-10 14:09:59.232:W / nalizableReferenceQueue(7890):在com.facebook.orca.inject.FbInjector.a(FbInjector.java:40) 05-10 14:09:59.232:W / nalizableReferenceQueue(7890):在com.facebook.katana.FacebookApplication.onCreate(FacebookApplication.java:75) 05-10 14:10:44.826:I / ActivityManager(192):杀死PROC 7890:com.facebook.katana / 10077:终止后台 05-10 14:10:44.826:W / ActivityManager(192):坠毁服务安排重启com.facebook.katana / .service.MediaUploadService在 14963ms

05-10 14:09:33.381: I/ActivityManager(192): Killing proc 7280:com.facebook.katana/10077: kill background 05-10 14:09:33.381: W/ActivityManager(192): Scheduling restart of crashed service com.facebook.katana/.service.MediaUploadService in 14992ms 05-10 14:09:48.412: I/ActivityManager(192): Start proc com.facebook.katana for service com.facebook.katana/.service.MediaUploadService: pid=7847 uid=10077 gids={3003, 1006, 1015} 05-10 14:09:48.568: I/ActivityThread(7847): Pub com.facebook.katana.provider.LoggingProvider: com.facebook.katana.provider.LoggingProvider 05-10 14:09:48.592: I/ActivityThread(7847): Pub com.facebook.katana.provider.KeyValueProvider: com.facebook.katana.provider.KeyValueProvider 05-10 14:09:48.592: I/ActivityThread(7847): Pub com.facebook.katana.provider.CacheProvider: com.facebook.katana.provider.CacheProvider 05-10 14:09:48.592: I/ActivityThread(7847): Pub com.facebook.katana.provider.MailboxProvider: com.facebook.katana.provider.MailboxProvider 05-10 14:09:48.599: I/ActivityThread(7847): Pub com.facebook.katana.provider.UserStatusesProvider: com.facebook.katana.provider.UserStatusesProvider 05-10 14:09:48.599: I/ActivityThread(7847): Pub com.facebook.katana.provider.EventsProvider: com.facebook.katana.provider.EventsProvider 05-10 14:09:48.607: I/ActivityThread(7847): Pub com.facebook.katana.provider.NotificationsProvider: com.facebook.katana.provider.NotificationsProvider 05-10 14:09:48.607: I/ActivityThread(7847): Pub com.facebook.katana.provider.UserValuesProvider: com.facebook.katana.provider.UserValuesProvider 05-10 14:09:48.607: I/ActivityThread(7847): Pub com.facebook.katana.provider.PagesProvider: com.facebook.katana.provider.PagesProvider 05-10 14:09:48.607: I/ActivityThread(7847): Pub com.facebook.katana.provider.MobileEventLogProvider: com.facebook.katana.provider.MobileEventLogProvider 05-10 14:09:48.607: I/ActivityThread(7847): Pub com.facebook.katana.provider.PushNotificationsProvider: com.facebook.katana.provider.PushNotificationsProvider 05-10 14:09:48.615: I/ActivityThread(7847): Pub com.facebook.katana.provider.PhotosProvider: com.facebook.katana.provider.PhotosProvider 05-10 14:09:48.615: I/ActivityThread(7847): Pub com.facebook.katana.provider.ConnectionsProvider: com.facebook.katana.provider.ConnectionsProvider 05-10 14:09:48.623: I/ActivityThread(7847): Pub com.facebook.orca.notify.FbandroidMessagesForegroundProvider: com.facebook.orca.notify.FbandroidMessagesForegroundProvider 05-10 14:09:48.639: D/ACRA(7847): ACRA is enabled for com.facebook.katana, intializing... 05-10 14:09:48.654: D/ACRA(7847): Looking for error files in /data/data/com.facebook.katana/app_acra-reports 05-10 14:09:48.701: W/nalizableReferenceQueue(7847): at com.facebook.orca.inject.binder.AnnotatedBindingBuilderImpl.a(AnnotatedBindingBuilderImpl.java:22) 05-10 14:09:48.701: W/nalizableReferenceQueue(7847): at com.facebook.orca.app.FbBaseModule.a(FbBaseModule.java:73) 05-10 14:09:48.701: W/nalizableReferenceQueue(7847): at com.facebook.orca.inject.AbstractModule.a(AbstractModule.java:19) 05-10 14:09:48.701: W/nalizableReferenceQueue(7847): at com.facebook.orca.inject.FbInjectorImpl.a(FbInjectorImpl.java:61) 05-10 14:09:48.701: W/nalizableReferenceQueue(7847): at com.facebook.orca.inject.FbInjectorImpl.(FbInjectorImpl.java:41) 05-10 14:09:48.701: W/nalizableReferenceQueue(7847): at com.facebook.orca.inject.FbInjector.a(FbInjector.java:40) 05-10 14:09:48.701: W/nalizableReferenceQueue(7847): at com.facebook.katana.FacebookApplication.onCreate(FacebookApplication.java:75) 05-10 14:09:48.928: I/SqliteDatabaseCpp(7847): sqlite returned: error code = 21, msg = misuse at line 105099 of [8609a15dfa], db=/data/data/com.facebook.katana/databases/prefs_db 05-10 14:09:53.810: I/ActivityManager(192): Killing proc 7847:com.facebook.katana/10077: kill background 05-10 14:09:53.810: W/ActivityManager(192): Scheduling restart of crashed service com.facebook.katana/.service.MediaUploadService in 5000ms 05-10 14:09:58.842: I/ActivityManager(192): Start proc com.facebook.katana for service com.facebook.katana/.service.MediaUploadService: pid=7890 uid=10077 gids={3003, 1006, 1015} 05-10 14:09:59.053: I/ActivityThread(7890): Pub com.facebook.katana.provider.LoggingProvider: com.facebook.katana.provider.LoggingProvider 05-10 14:09:59.060: I/ActivityThread(7890): Pub com.facebook.katana.provider.KeyValueProvider: com.facebook.katana.provider.KeyValueProvider 05-10 14:09:59.060: I/ActivityThread(7890): Pub com.facebook.katana.provider.CacheProvider: com.facebook.katana.provider.CacheProvider 05-10 14:09:59.076: I/ActivityThread(7890): Pub com.facebook.katana.provider.MailboxProvider: com.facebook.katana.provider.MailboxProvider 05-10 14:09:59.076: I/ActivityThread(7890): Pub com.facebook.katana.provider.UserStatusesProvider: com.facebook.katana.provider.UserStatusesProvider 05-10 14:09:59.076: I/ActivityThread(7890): Pub com.facebook.katana.provider.EventsProvider: com.facebook.katana.provider.EventsProvider 05-10 14:09:59.076: I/ActivityThread(7890): Pub com.facebook.katana.provider.NotificationsProvider: com.facebook.katana.provider.NotificationsProvider 05-10 14:09:59.076: I/ActivityThread(7890): Pub com.facebook.katana.provider.UserValuesProvider: com.facebook.katana.provider.UserValuesProvider 05-10 14:09:59.076: I/ActivityThread(7890): Pub com.facebook.katana.provider.PagesProvider: com.facebook.katana.provider.PagesProvider 05-10 14:09:59.084: I/ActivityThread(7890): Pub com.facebook.katana.provider.MobileEventLogProvider: com.facebook.katana.provider.MobileEventLogProvider 05-10 14:09:59.084: I/ActivityThread(7890): Pub com.facebook.katana.provider.PushNotificationsProvider: com.facebook.katana.provider.PushNotificationsProvider 05-10 14:09:59.084: I/ActivityThread(7890): Pub com.facebook.katana.provider.PhotosProvider: com.facebook.katana.provider.PhotosProvider 05-10 14:09:59.084: I/ActivityThread(7890): Pub com.facebook.katana.provider.ConnectionsProvider: com.facebook.katana.provider.ConnectionsProvider 05-10 14:09:59.092: I/ActivityThread(7890): Pub com.facebook.orca.notify.FbandroidMessagesForegroundProvider: com.facebook.orca.notify.FbandroidMessagesForegroundProvider 05-10 14:09:59.154: D/ACRA(7890): ACRA is enabled for com.facebook.katana, intializing... 05-10 14:09:59.185: D/ACRA(7890): Looking for error files in /data/data/com.facebook.katana/app_acra-reports 05-10 14:09:59.232: W/nalizableReferenceQueue(7890): at com.facebook.orca.inject.binder.AnnotatedBindingBuilderImpl.a(AnnotatedBindingBuilderImpl.java:22) 05-10 14:09:59.232: W/nalizableReferenceQueue(7890): at com.facebook.orca.app.FbBaseModule.a(FbBaseModule.java:73) 05-10 14:09:59.232: W/nalizableReferenceQueue(7890): at com.facebook.orca.inject.AbstractModule.a(AbstractModule.java:19) 05-10 14:09:59.232: W/nalizableReferenceQueue(7890): at com.facebook.orca.inject.FbInjectorImpl.a(FbInjectorImpl.java:61) 05-10 14:09:59.232: W/nalizableReferenceQueue(7890): at com.facebook.orca.inject.FbInjectorImpl.(FbInjectorImpl.java:41) 05-10 14:09:59.232: W/nalizableReferenceQueue(7890): at com.facebook.orca.inject.FbInjector.a(FbInjector.java:40) 05-10 14:09:59.232: W/nalizableReferenceQueue(7890): at com.facebook.katana.FacebookApplication.onCreate(FacebookApplication.java:75) 05-10 14:10:44.826: I/ActivityManager(192): Killing proc 7890:com.facebook.katana/10077: kill background 05-10 14:10:44.826: W/ActivityManager(192): Scheduling restart of crashed service com.facebook.katana/.service.MediaUploadService in 14963ms

的MyService LogCat中的

MyService LogCat

I / ActivityManager(192):杀死PROC 8556:ie.cathalcoffey.android/10033:终止后台 I / ActivityManager(192):杀死PROC 8606:ie.cathalcoffey.android:远程/ 10033:终止后台 W / ActivityManager(192):坠毁服务ie.cathalcoffey.android/.MyService在调度启动 23358ms I / ActivityManager(192):启动PROC ie.cathalcoffey.android:remote服务ie.cathalcoffey.android/.MyService:PID = 8726的uid = 10033导报= {3003} I / ActivityManager(192):杀死PROC 8726:ie.cathalcoffey.android:远程/ 10033:终止后台 W / ActivityManager(192):坠毁服务ie.cathalcoffey.android/.MyService在调度启动 93432ms I / ActivityManager(192):启动PROC ie.cathalcoffey.android:remote服务ie.cathalcoffey.android/.MyService:PID = 9063的uid = 10033导报= {3003} I / ActivityManager(192):杀死PROC 9063:ie.cathalcoffey.android:远程/ 10033:终止后台 W / ActivityManager(192):坠毁服务ie.cathalcoffey.android/.MyService在调度启动 373728ms

I/ActivityManager( 192): Killing proc 8556:ie.cathalcoffey.android/10033: kill background I/ActivityManager( 192): Killing proc 8606:ie.cathalcoffey.android:remote/10033: kill background W/ActivityManager( 192): Scheduling restart of crashed service ie.cathalcoffey.android/.MyService in 23358ms I/ActivityManager( 192): Start proc ie.cathalcoffey.android:remote for service ie.cathalcoffey.android/.MyService: pid=8726 uid=10033 gids={3003} I/ActivityManager( 192): Killing proc 8726:ie.cathalcoffey.android:remote/10033: kill background W/ActivityManager( 192): Scheduling restart of crashed service ie.cathalcoffey.android/.MyService in 93432ms I/ActivityManager( 192): Start proc ie.cathalcoffey.android:remote for service ie.cathalcoffey.android/.MyService: pid=9063 uid=10033 gids={3003} I/ActivityManager( 192): Killing proc 9063:ie.cathalcoffey.android:remote/10033: kill background W/ActivityManager( 192): Scheduling restart of crashed service ie.cathalcoffey.android/.MyService in 373728ms

推荐答案

解决这个问题似乎以下。使操作系统相信,它已经杀死了那个正在做的工作服务。然后,它似乎重新启动服务以较小的延迟。

The solution to this problem seems to be the following. Cause the OS to believe that it has killed a Service that was doing work. It then appears to restart that Service with a smaller delay.

我现在已经修改我的服务来启动的AsyncTask它只是永远循环,并调用视频下载(100)

I have now edited my Service to start an AsyncTask which simply loops forever and calls Thread.sleep(100)

现在,当我被迫杀了我的服务,我看到非常相似的重启时间,我做了Facebook的服务:5000毫秒,24713ms,14997ms,54912ms,14988ms

Now when I forcibly kill my Service, I see very similar restart times that I do for the Facebook Service: 5000ms, 24713ms, 14997ms, 54912ms, 14988ms.

请证明我是错的或右,但因为它的立场,这似乎解决我的问题。

Please prove me wrong or right but as it stands this seems to solve my problem.