服务在应用程序关闭时重新启动-START_STICKY

RuAware

我有一个可作为网络服务器运行的应用程序。该应用程序具有START_STICKY服务,我希望该服务一直运行该Web服务器(在通知用户停止该服务的选项)。

问题是,当我关闭我的应用程序时,服务器会重新启动(丢失设置等)。它在那里保持良好状态,但logcat显示它正在重新启动。

我可以重新打开我的应用程序并绑定到新服务,这可以正常工作。虽然再次滑动关闭具有相同的效果。

我需要此操作才能不重新启动。

标准服务代码

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;
}
米莫·格罗托里(Mimmo Grottoli)

简短答案:您不能。当系统要求内存或用户从最近的应用程序列表中刷出该应用程序时,每个Android应用程序都可能被系统或用户杀死。这是一个Android设计,所有应用都必须遵守。您唯一可以做的(小)改进就是将服务设置为前台服务

系统认为它是用户主动意识到的东西,因此在内存不足时不是杀死的对象。(从当前的前台应用来看,从理论上讲,仍然有可能在极高的内存压力下终止该服务,但实际上,这不必担心。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

关于服务中的START_STICKY

来自分类Dev

服务未在 API 级别 25(牛轧糖)以上的设备上使用 START_STICKY 重新启动

来自分类Dev

Android服务的START_STICKY标志的精确语义

来自分类Dev

使用线程从服务中返回START_STICKY

来自分类Dev

即使使用START_STICKY,Android也不会重新创建服务

来自分类Dev

即使使用START_STICKY,Android也不会重新创建服务

来自分类Dev

“ START_STICKY”服务会阻止android进入休眠状态吗?

来自分类Dev

即使我使用了START_STICKY,服务也不会一直运行

来自分类Dev

START_STICKY不起作用

来自分类Dev

可以参加START_STICKY活动吗?

来自分类Dev

START_STICKY在Android KitKat上不起作用

来自分类Dev

START_STICKY在Android KitKat上不起作用

来自分类Dev

关闭应用程序后重新启动

来自分类Dev

在应用程序启动时从代码调整/重新启动Postgresql服务器

来自分类Dev

在根环境中启动时启动应用程序,然后进行监视,如果关闭或崩溃则重新启动

来自分类Dev

当应用程序被系统杀死/重新启动时,Android 服务崩溃

来自分类Dev

START_STICKY_COMPATIBILITY服务

来自分类Dev

单击通知时重新启动应用程序

来自分类Dev

应用程序在重新启动活动时崩溃

来自分类Dev

如何关闭正在运行的应用程序的所有活动并在单击时重新启动新的应用程序

来自分类Dev

当应用程序服务器需要重新启动时,哪种文件类型会更改?

来自分类Dev

当应用程序服务器需要重新启动时,哪种文件类型会更改?

来自分类Dev

IIS Express为什么总是关闭该应用程序并重新启动它?

来自分类Dev

如果不重新启动应用程序就无法强制关闭它?

来自分类Dev

检查进程是否已关闭/未运行,然后重新启动应用程序

来自分类Dev

Kubuntu 16.04.3:如何阻止KDE打开重新启动/关闭机器之前打开的应用程序?

来自分类Dev

如何从 GNOME shell 应用程序列表中删除注销、重新启动和关闭?

来自分类Dev

如何以编程方式关闭并重新启动应用程序?

来自分类Dev

如何使通过Puma和Capistrano部署的Rails应用程序在重新启动时启动

Related 相关文章

  1. 1

    关于服务中的START_STICKY

  2. 2

    服务未在 API 级别 25(牛轧糖)以上的设备上使用 START_STICKY 重新启动

  3. 3

    Android服务的START_STICKY标志的精确语义

  4. 4

    使用线程从服务中返回START_STICKY

  5. 5

    即使使用START_STICKY,Android也不会重新创建服务

  6. 6

    即使使用START_STICKY,Android也不会重新创建服务

  7. 7

    “ START_STICKY”服务会阻止android进入休眠状态吗?

  8. 8

    即使我使用了START_STICKY,服务也不会一直运行

  9. 9

    START_STICKY不起作用

  10. 10

    可以参加START_STICKY活动吗?

  11. 11

    START_STICKY在Android KitKat上不起作用

  12. 12

    START_STICKY在Android KitKat上不起作用

  13. 13

    关闭应用程序后重新启动

  14. 14

    在应用程序启动时从代码调整/重新启动Postgresql服务器

  15. 15

    在根环境中启动时启动应用程序,然后进行监视,如果关闭或崩溃则重新启动

  16. 16

    当应用程序被系统杀死/重新启动时,Android 服务崩溃

  17. 17

    START_STICKY_COMPATIBILITY服务

  18. 18

    单击通知时重新启动应用程序

  19. 19

    应用程序在重新启动活动时崩溃

  20. 20

    如何关闭正在运行的应用程序的所有活动并在单击时重新启动新的应用程序

  21. 21

    当应用程序服务器需要重新启动时,哪种文件类型会更改?

  22. 22

    当应用程序服务器需要重新启动时,哪种文件类型会更改?

  23. 23

    IIS Express为什么总是关闭该应用程序并重新启动它?

  24. 24

    如果不重新启动应用程序就无法强制关闭它?

  25. 25

    检查进程是否已关闭/未运行,然后重新启动应用程序

  26. 26

    Kubuntu 16.04.3:如何阻止KDE打开重新启动/关闭机器之前打开的应用程序?

  27. 27

    如何从 GNOME shell 应用程序列表中删除注销、重新启动和关闭?

  28. 28

    如何以编程方式关闭并重新启动应用程序?

  29. 29

    如何使通过Puma和Capistrano部署的Rails应用程序在重新启动时启动

热门标签

归档