2016-08-15 96 views
0

我做了一个带有runnable的android应用程序,它可以检查任何事情。Android应用程序在几个小时后死亡

但问题是应用程序在几个小时后没有错误消息或任何事情发生[DEAD]。 任何人都知道问题可能是什么?

+0

应用待机可能? –

+0

任何递增值可能?考虑溢出? –

+0

https://developer.android.com/training/monitoring-device-state/doze-standby.html – Opiatefuchs

回答

2

这不是一个问题,那实际上是预期的行为。

所有应用程序的生命周期都由Android OS管理。它决定是否终止一个应用程序,以释放资源并保持系统响应。目前使用的应用程序优先于暂停和后台应用程序。我想在你的情况下,操作系统只是决定关闭应用程序,因为它认为它不再需要。

有办法解决这个问题,但这一切都取决于你的应用程序的实际功能。我不知道您的实施细节,但可能想要查看粘性ServiceJobScheduler以实现您的目标。请记住,Android中不存在永久运行的后台任务(不应该有一个),通常实现有一定的限制。

+0

我想要应用程序检查一个Wi-Fi SSID名称是否是vissable,如果这是真的我希望它发送用户通知。我应该用什么来做到这一点? – Unskilled

+0

我想你需要使用'JobScheduler'。您可以根据许多标准来定义您的作业的运行时间。例如,只有当您使用Wi-Fi等时,才能运行作业。请检查文档。 –

1

它可能是Android操作系统本身关闭应用程序。如果操作系统需要更多内存,它将开始杀死其他长时间未使用的进程(即与之交互)。你没有说明检查是如何发生的,但不应该直接在应用程序中完成,但它听起来像是后台服务应该做的工作,可能会阻止这种情况发生。

0

您不应该将Runnables用于后台进程,因为只要您的应用程序离开屏幕,它们就会被操作系统暂停/杀死。

如果你不想让某些进程定期运行,你必须坚持AlarmManager/BroadcastReceiver组合

相关问题