Android侦听器是否需要一直运行?

时间:2019-04-03 05:56:35

标签: android service

我正在写我的第一个独立的Android应用程序。它会在后台运行,并对OS生成的一些事件做出响应,具体取决于用户,每天发生几次,一周一次发生。

出于PC编程的背景,我认为我可能需要一项服务,但是Android Developers > Service说:

  

什么是服务?

     

关于Service类的大多数困惑实际上是围绕 not 的:

     
      
  • 服务不是独立过程。 Service对象本身并不意味着它在自己的进程中运行;除非另有说明,否则它将与它所属的应用程序在同一进程中运行。
  •   
  • 服务不是不是线程。这本身并不是一种在主线程上工作的方法(以避免Application Not Responding错误)。
  •   

除非该应用程序正在监听的事件之一发生,否则该应用程序无需消耗任何资源。设置完应用程序后,用户也无需主动使用它,仅当他们想要更改其设置时。

我的游戏似乎在做与我想要的游戏相似的事情。他们坐在后台,可以接收消息(例如现在轮到我了),当我单击通知时,它将游戏加载到内存中,这比已经在内存中的时间要长几秒钟。

如果用户已经一个月没有使用该应用程序的界面,我希望它仍然可以运行(即使设备已关闭并重新打开电源)并响应事件,但不会出现在最近的应用程序列表中(假设一个月足以将其推迟到最后)。理想情况下,我希望它在一秒钟内响应事件。它不必是即时的。正常的做法是什么?

  1. 一个应用程序(偶尔使用)和一个单独的“服务”进程/线程(永久)
  2. 应用程序和“服务”的组合(永久)
  3. 应用程序和“服务”的组合(通过事件加载到内存中)

1 个答案:

答案 0 :(得分:0)

没有足够的声誉进行评论,只是告诉您没有什么阻止Android终止您的服务,要在用户重新启动手机后重新启动服务,您可以添加广播接收器并收听 https://developer.android.com/guide/components/broadcasts

。此外,如果您不想在服务运行时显示通知,则必须使用后台服务而不是前台服务。希望对您有所帮助。