2014-01-29 34 views
0

我正在将iOS应用程序移植到Android,并且在终端方面有点困难。 我希望应用程序在开始/到达前台时(即用户选择应用程序)以及应用程序转到后台时(例如,当进入主屏幕并开始使用其他应用程序时)同步。关闭Android应用程序时的消息

有一个简单的方法来做到这一点在Android? 我将onResume()和onPause()添加到我的活动中,但是当活动恢复或暂停时会触发,而不是整个应用程序暂停时(并且每次用户执行某些操作时会导致大量同步)。

更新: 同步操作是一种服务,当应用程序需要从服务器获得新的/更新的信息时调用。因此,这需要在应用程序由suer启动/恢复(在一段时间不活动之后)时完成,并且当用户主动停止使用应用程序时需要执行此操作。

当一个活动进入背景
+2

恕我直言,你不是问正确的问题。你应该解释你的“同步”过程是什么,然后询问这种操作的正确时机。 – CommonsWare

+0

我只想第二个CommonsWare在这上面 - Sync是什么意思?另外,如果由于长时间运行的操作(这是我在问题的第二部分中所听到的内容)导致UI冻结,您可能需要澄清一下,以便我们可以解决它。 –

+0

增加的更新使它更清晰? –

回答

0

onPause() -> onStop()

方法将在序列)来执行,如果活动是部分可见的,仅在onPause(如果活动是完全不可见的由另一活动,的onStop()方法将在onPause()之后执行。

onDestroy() 

如果您调用finish()或系统中没有足够的内存并且系统销毁它时,方法将被执行。除非调用finish()方法,否则不能依赖于Destroy()方法。

最好使用onStop()方法保存您的数据。

+0

但是,在“整个应用程序”级别上有什么作用,所以我只在应用程序完全被解雇时触发事件,而不是在从一个活动导航到另一个时触发事件。 –

+0

您有2个选项,可以为每个活动重写onStop()或创建一个基本Activity类,其他活动将扩展它。最后,你会确定你的方法将被执行。 –

0

nr4bt有一个有效的点,并根据您所需的功能,一个很好的选择。

全局方法是在应用程序启动时启动Service

  • 将此Service RESPONSABLE与合适的回调您的同步操作,您的活动Activity

  • 使此Service知道您的活/暂停/停止Activity的。当最后一个完成 - >做你的最后同步并杀死Service