Android :: 需要在android应用程序恢复不活动时执行一些任务

Posted

技术标签:

【中文标题】Android :: 需要在android应用程序恢复不活动时执行一些任务【英文标题】:Android :: need to perform some tasks when android application resumes not activity 【发布时间】:2015-03-19 09:49:22 【问题描述】:

在我的 android 应用程序中,第一次安装应用程序时会安装 sqlite db。我已将 sqlite db 保留在 amazon aws 服务器上。应用程序下载 db 从那里开始。

现在当用户打开应用程序时,它应该检查服务器上是否有新的数据库。如果存在则下载,否则使用现有数据库。

我的问题是我应该在何时何地在 Android 应用程序中进行上述数据库检查?我想在应用程序恢复不是特定活动时执行此操作。

我想在主要活动的 Onresume() 中执行此操作,但我认为如果用户在不同活动中关闭应用程序,它可能会被调用或不被调用。我还必须考虑性能...

假设我们有活动 A、B 和 C。它们可以在彼此之间来回跳跃。每次调用其中一个时, OnResume() 总是会被解雇。用户可能会在活动 B 或 C 上离开应用程序,进行一些浏览,然后在活动 B 或 C 上返回应用程序。

请帮忙....

【问题讨论】:

【参考方案1】:

我认为你应该使用

onCreate   

你的Application类的方法。Here the link to Application class reference

【讨论】:

【参考方案2】:

我发现了一些关于你理解 Sqlite 的问题。 SQLite 是内置的,但不是“第一次安装应用程序时安装”。 您使用的数据库是在您第一次使用时创建的。 然后它会一直存在那里。当此数据库发生错误时,您可以更新它。 同时,您可以使用带有一些私有布尔参数的 Activity 的生命周期方法。比如A中boolean flag=false,当你跳到B时,会调用A的onPause,那么你可以设置flag=true。然后你回到A,就会调用onResume,然后你可以这样做:

if(flag)
  //check your db status
    flag=false;
 else 
  //do something else here.

【讨论】:

通过说“第一次安装应用程序时安装了 sqlite db”我的意思是一样的。我在 sqlite 中创建了数据库。并且在第一次安装应用程序时安装了这个数据库。正如您所说,在活动中维护标志......这似乎很复杂。每次用户来回活动时,我都想检查数据库状态。根据性能,它不会很好。

以上是关于Android :: 需要在android应用程序恢复不活动时执行一些任务的主要内容,如果未能解决你的问题,请参考以下文章

在开发第一个Android应用之前需要知道的5件事:

在 android 和 IOS 中运行 phoneGap 应用程序需要进行啥配置?

需要生成特定于设备 ID 的访问密钥(Android 应用程序的 android_id)

在这个简单的 Android 应用案例中,我需要 OAuth 2.0 提供啥?

Android需要事件前台和后台

如何用Android NDK编译FFmpeg