当应用程序在android上关闭时如何阻止重新启动服务?
Posted
技术标签:
【中文标题】当应用程序在android上关闭时如何阻止重新启动服务?【英文标题】:How to block restarting service when app closed on android? 【发布时间】:2014-10-12 23:07:39 【问题描述】:应用程序和后台服务一起运行。但是当应用程序关闭时,后台服务正在重新启动? 为什么?如何阻止此重启?
当应用程序关闭时,服务应该继续 什么都没发生。我该怎么做?
我在 MainActivity 中使用此代码:
tryConnect();
private boolean isMyServiceRunning(Class<?> serviceClass)
ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE))
if (serviceClass.getName().equals(service.service.getClassName()))
return true;
return false;
private void tryConnect()
if(!isMyServiceRunning(BackService.class))
startService(new Intent(this,BackService.class));
后台服务返回 START_STICKY;(我试过 START_NOT_STICKY,START_REDELIVER_INTENT,不起作用) 我在 android 应用中没有 onDestroy。
【问题讨论】:
操作系统可以在需要一些内存时随时停止您的服务。因此,最好提供不受任何这些问题影响的服务 【参考方案1】:服务和活动是否在同一个进程上运行?如果是这样,那么这可能就是您的服务行为如此的原因(如果两者共享相同的进程,那么当应用程序死亡时进程也会死亡,如果它使用 START_STICKY 会导致服务自行重启)......也许您应该尝试运行该服务在一个单独的过程中..
【讨论】:
以上是关于当应用程序在android上关闭时如何阻止重新启动服务?的主要内容,如果未能解决你的问题,请参考以下文章
返回第一个 ViewController 时如何阻止 AVFoundation 音频重新启动?
Android 5 Asus ZenFone 2 在应用关闭时阻止推送通知
当用户在 10 秒内重新启动关闭的 Windows 商店应用程序时如何恢复数据