- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个作为网络服务器运行的应用程序。该应用有一项服务是 START_STICKY 我希望该服务始终运行网络服务器(在通知中向用户提供了停止它的选项)。
问题是当我关闭我的应用程序时,服务器会重新启动(丢失设置等)。它保持在那里很好,但 logcat 显示它正在重新启动。
我可以重新打开我的应用程序并绑定(bind)到新服务,一切正常。虽然再次滑动关闭具有相同的效果。
我需要这个才能不重启。
标准服务代码
private WebServerService mService;
private ServiceConnection mConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName className,
IBinder binder) {
WebServerService.MyBinder b = (WebServerService.MyBinder) binder;
mService = b.getService();
}
public void onServiceDisconnected(ComponentName className) {
mService = null;
}
};
public serviceStart() {
mIntent = new Intent(mContext.getApplicationContext(), WebServerService.class);
mContext.startService(mIntent);
mContext.bindService(mIntent, mConnection, Context.BIND_AUTO_CREATE);
}
服务启动
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, START_STICKY, startId);
Log.d("SERVICE","Started");
return START_STICKY;
}
最佳答案
简短的回答:你不能。当系统占用内存或用户从最近的应用程序列表中刷出应用程序时,每个 Android 应用程序都可能被系统或用户杀死。这是 Android 设计,所有应用程序都必须遵守它。您可以拥有的唯一(小)改进是将服务设置为 Foreground service :
where the system considers it to be something the user is actively aware of and thus not a candidate for killing when low on memory. (It is still theoretically possible for the service to be killed under extreme memory pressure from the current foreground application, but in practice this should not be a concern.)
关于android - 服务在应用程序关闭时重新启动 - START_STICKY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31759911/
我正在构建一个应用程序,但是在返回 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,
我是一名优秀的程序员,十分优秀!