你好,我正在试图在后台运行一个服务,当应用程序被任务管理器销毁时它不会停止。如果服务器中存在数据库中的新插入,则服务的思路是每“x”分钟进行验证。在应用程序被任务管理器杀死后,服务是否仍然可以运行?
即使我关闭应用程序,但服务运行良好,但是当我使用任务管理器销毁我的应用程序时,所有线程也都关闭了。
所以我想知道它是否有可能运行一个线程,永远要求在后台,除非用户在应用程序本身取消它,忽略任务管理器造成的破坏,所以在将来我可以使用通知栏来告诉用户在数据库中发生了新插入。
Tryed:
public int onStartCommand(Intent intent, int flags, int startId) {
// TODO Auto-generated method stub
askServer(); // i made a timertask that ask every "x" minute
return START_STICKY;
}
,因为我读START_STICKY应该再次运行该服务,如果它被杀死出于某种原因,我知道这是可以做到,因为有些应用程序获得通过任务管理器关闭,仍然得到通知从它作为whatsapp,bbms和其他。请告诉我,如果我错了什么,并感谢您的阅读!
UPDATE:我不是试图打破任何法律或安全规则从Android和IM不试图忽略在设置应用程序的回采服务选项。我希望该用户使用的,当你按下回家了,而出现的界面后听在我的情况下,新进入的“事件”嵌入式服务继续运行:
UPDATE:很抱歉对这个应用程序的谈论很多,但是我可以用它作为例子。在whatsapp中,当我通过界面显示的界面显示流程和服务被终止时,但在几秒钟后他们重新启动,这正是我想要做的,以保持用户了解数据库事件。从设置你仍然可以停止服务没有问题,甚至我可以在应用程序本身的选项停止notifiying。
OnDestroy()方法中的一个错误实现调用服务的一个实例,以便在销毁后重新启动?
UPDATE:韦尔普看起来像我的机构仍然在后台运行后,我关闭应用程序。我只需要在我的服务设计上工作,不会浪费电池寿命和资源。另外我使用log.i()检查服务是否正在运行,看起来像主进程关闭时我不能使用日志或吐司只是通知(仍未实现),因为服务在那里运行只是不会显示日志。
UPDATE:现在正在使用的工作用startForeground(0,NULL)。将来,我将发送一个通知,以显示数据库事件发生时的情况,并调用startForeground(1,notification)。
'忽略任务管理器造成的破坏' - 我希望不会,这将是一个巨大的安全问题。 –
@MartinJames有没有办法在不影响安全性的情况下这样做?即使应用程序本身已关闭并且未在taskmanager中运行,我也看到了使用通知的应用程序。 – AmirG
仅仅不运行的应用程序可以从某些触发器开始。但是,在用户明确启动之前,用户从设置菜单中杀死的内容不能执行任何操作。 –