我的应用程序有3个活动 - 主菜单,子菜单,详细信息。每次 APPLICATION 恢复时,我想得到一些暗示,以便我可以开始下载一些文件。
现在我正在做的是每个活动onResume
,我检查下载是否已经开始。如果不是那么我开始下载。这样,每当我开始下一个/上一个活动时,如果没有进行下载,它就开始下载。意思是,一旦下载完成,用户导航到下一页,再次开始下载。
我想阻止此行为,否则会有不必要的互联网使用。
如果我维护一个跟踪下载状态的全局(应用程序级别)变量,即使在我恢复应用程序之后,也不会重新设置该值。
有关如何获取onResume
申请的任何建议。
答案 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。