如何获得应用程序的onResume?

时间:2012-11-09 09:31:01

标签: android

我的应用程序有3个活动 - 主菜单,子菜单,详细信息。每次 APPLICATION 恢复时,我想得到一些暗示,以便我可以开始下载一些文件。

现在我正在做的是每个活动onResume,我检查下载是否已经开始。如果不是那么我开始下载。这样,每当我开始下一个/上一个活动时,如果没有进行下载,它就开始下载。意思是,一旦下载完成,用户导航到下一页,再次开始下载。

我想阻止此行为,否则会有不必要的互联网使用。

如果我维护一个跟踪下载状态的全局(应用程序级别)变量,即使在我恢复应用程序之后,也不会重新设置该值。

有关如何获取onResume申请的任何建议。

3 个答案:

答案 0 :(得分:2)

那么在开始下载过程之前检查下载的内容呢?有多种方法可以做到这一点,您没有提供有关要下载的内容性质的详细信息。

例如:检查FS中下载的文件,在某处设置一个持久标志(使用SharedPreferences,SQLite db,等等),标记内容是否已经下载等等。

答案 1 :(得分:1)

你做不到。 该应用程序不会恢复。应用程序仅创建和销毁。 这些活动具有复杂的生命周期。

对我来说最好的方法似乎是每个Activity绑定到onResume的服务,服务负责下载。

答案 2 :(得分:1)

您可以使用SharedPreferences存储以下数据:

下载完成后:

  SharedPreferences settings = getSharedPreferences(MY_PREF, 0);
  SharedPreferences.Editor editor = settings.edit();
  editor.putBoolean("download_done", true);

如果您想检查下载是否来自另一项活动:

   SharedPreferences settings = getSharedPreferences(MY_PREF, 0);
   boolean downloadDone = settings.getBoolean("download_done", false);
   if (!downloadDone) {
   // Code to start/resume download.
   }

您可以在任何活动,服务等中使用此功能。有关详细信息,请转到here