完成活动后,避免再次加载数据

时间:2012-08-07 08:32:59

标签: android android-intent android-activity start-activity

在我的应用主要活动中,我在onStart()下载了一些用户数据。当我打开设置并点击Back按钮时,我完成Settings Activity并返回主活动。问题是数据正在重新下载。

那么,如何避免重新下载数据呢?

我虽然关于startActivityForResult,但我不知道如何使用它,我不明白它是如何工作的。

提前谢谢!

4 个答案:

答案 0 :(得分:2)

这是Android的常见行为。当您启动“设置活动”时,您的“主要活动:调用onStop并且活动已停止。现在当您从”设置活动“中单击后退按钮时,”主要活动“将出现在最前面,并再次调用onStart方法。由于您说您正在使用onStart方法下载数据,因此数据将再次下载。

您可以通过在onCreate方法中下载数据来避免这种情况。

答案 1 :(得分:2)

在主活动类中定义一个静态变量,如下所示:

public static bool download = true;

从设置返回时,将其值更改为false,如:

MainActivity.download = false;

并将下载方法放在if语句中:

if (download) {
yourdownloadcode();
}

答案 2 :(得分:1)

当您在“设置”活动上按Back按钮后,当您的主要活动可见时,会再次调用onStart方法(请参阅Activity Lifecycle)。这就是为什么你再次开始重新下载数据的原因。所以,保留一些标志,表明你已经开始下载任务了。但请记住,在调用onPause方法后,您的主要活动可能会被杀死。

答案 3 :(得分:1)

如果您只想加载数据,可以使用活动onCreate。以下是活动生命周期信息:http://developer.android.com/reference/android/app/Activity.html

startActivityForResult 

您可以像设置屏幕上的回调一样使用 - 如果您需要在“设置”屏幕上更改配置后更改“主要活动”布局。您可以在http://saigeethamn.blogspot.com/2009/08/android-developer-tutorial-for_31.html

找到示例