当Android应用程序启动并存在时运行代码

问题描述:

在我的应用程序中,只要应用程序关闭(暂停),我就需要调用代码,然后在应用程序再次启动时重新运行代码(恢复)。例如,我调用一个Web服务,在应用程序启动或退出时同步数据。由于*应用程序的恢复和暂停方法,这在iOS中很容易。当Android应用程序启动并存在时运行代码

我明白活动中的OnPause和OnResume,但是,是否有一个中心的方法来处理这个问题?用户可以将应用程序放在Activity3上,稍后再回来,或者放在另一个屏幕等等。我不想在每个Activity的OnPause和OnResume中都有相同的代码来处理“app”启动和关闭代码例程。

有什么建议吗?

谢谢。

+0

的你不需要这样称呼它。例如,您不会在Web应用程序中执行此操作,因为在“应用程序关闭”或“应用程序再次启动”的Web应用程序中没有任何概念。 Android应用程序在这方面非常像Web应用程序。活动的设计来来去去,每个活动都基本独立于其他活动,就像Web应用程序的Web页面一样。 – CommonsWare 2011-05-20 19:54:59

您可以制作一个通用的Activity,它以某种方式处理onResume()和onPause(),然后使每个Activity都从该Activity扩展而不是直接Activity。

+0

这个概念很好,除了每次活动恢复时onResume都会运行,所以每次使用应用程序时我都无法“开始同步”。我不想在每次活动恢复时运行此代码。我可能不得不删除此功能,因为它不适合Android应用程序,就像它适用于iPhone应用程序一样。 – Neal 2011-05-21 13:58:10

+0

好吧,然后在第一个Activity上放置“开始同步”代码,无论如何都要调用super.onResume(),并执行通用代码。只有普通的行为必须放在那里,你可以在任何子类上放置特定的行为。 – ferostar 2011-05-21 14:48:31

我会考虑继承Activty,让你的每一项活动都可以扩展它,并且只要你在他们中的任何一个暂停或恢复时做你所需要的事情。

你可以在应用程序类中使用一些静态成员,新的活动基地用它来跟踪状态或存储任何你需要的东西。

此外,应用程序类有一个onCreate()方法,它将在每次启动应用程序时运行。但是,应用程序没有暂停或恢复。

创建一个由所有其他活动扩展的主Activity并覆盖onPause和onResume。

但是,如果你想扩展另一个Activity类(如ListActivity),你将面临的问题。

另一种方法是创建一个扩展应用程序的新类并覆盖其的onCreate和创建作为的onPause静态方法和手动每个活动

+0

扩展应用程序类为我工作..谢谢Hazeem – sadaf 2012-12-10 13:27:46