当前位置: 首页 > 知识库问答 >
问题:

Android-当应用程序被杀死时,会调用什么方法?

张永嘉
2023-03-14

我在写一个玩家轮流参加的游戏。在一个回合结束时,我将我的数据发送到服务器,并更新我的数据库,让我知道现在轮到另一个玩家了。问题是,如果有人在中途扼杀了应用程序怎么办?我是说去找任务经理然后杀了它。

编辑:我还应该提到这是在一个片段中,我正在检查这个,但不要认为这会有什么不同。

共有1个答案

萧奇
2023-03-14

我不确定这是否会帮助您完全解决这个问题,但是如果您想使用onStop()而不是onDestroy(),那么有一种方法可以区分对onStop()的调用和对onStop()的调用,前者是因为活动正在死亡,后者是因为它正在进入后台:

 if (this.isFinishing ())
 {
  // activity dying
 }
 else
 {
  // activity not dying just stopping
  }

然而,我确实想指出,尽管onStop()可能比onDestroy()更可靠,但仍然不能保证立即调用它。根据我的经验,onStop()最终会被调用,但可能会在一段时间后被调用。

 类似资料:
  • 我有一个要求,执行一个任务,在正好每5分钟。我考虑了多个选项,并尝试使用类来触发任务来实现这一点。但是,当应用程序被杀死时,我无法触发警报。 当应用程序打开或在后台运行时,警报似乎工作得完美无缺,但一旦我退出应用程序,它似乎完全停止了。 我的实现是使用函数,并自己处理重复这个过程。最初的警报在5秒后触发,然后在此之后每5分钟触发一次。 MyService.kt:

  • 问题内容: 我正在用C / C ++ 创建子进程。 当父进程结束(或由于某种原因被杀死)时,我也希望所有子进程也被杀死。 这是系统自动完成的吗?还是我必须自己做? 谢谢。 问题答案: 否。如果父进程被杀死,则子进程将成为init进程的子进程(该进程的进程ID为1,并由内核作为第一个用户进程启动)。 初始化过程会定期检查新的子代,然后等待它们(从而释放由其返回值分配的资源)。

  • 我的android应用程序在关闭时没有收到任何firebase通知,当我关闭应用程序时,会被操作系统关闭。当应用程序处于前台或后台时,一切工作都很好。当应用程序在后台并且我发送了一个数据消息时,它由我的中的接收(有趣的是,它为每个消息创建并随后销毁,即)。当我终止应用程序(通过从打开的应用程序列表中滑动)时,中不再接收消息。所有的服务都被干掉了!!谁能帮帮我吗?提前道谢!

  • 在我的应用程序中,我有一个在后台(和前台)运行。 在这个中,有一个,当它完成时,我想在某个中启动应用程序并在中自动执行一些操作,即使我的应用程序被杀死或关闭,我也希望它能正常工作。 我看到了一些答案,这是其中之一,但它对我不起作用。我找到了一个更好的解决方案,并将其作为答案发布在下面,但仍然只有在应用程序关闭但未完全关闭时才有效。 如何从后台启动,即使应用程序已关闭或关闭?