0

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

那么,怎样才能避免数据的重新下载呢?

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

先感谢您!

4

4 回答 4

2

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

public static bool download = true;

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

MainActivity.download = false;

并将您的下载方法放在这样的 if 语句中:

if (download) {
yourdownloadcode();
}
于 2012-08-07T08:52:38.893 回答
2

这是Android的通常行为。当您启动“设置活动”时,您的“主要活动:调用 onStop 并停止活动。现在,当您单击“设置活动”中的后退按钮时,“主要活动”会出现在最前面并再次调用 onStart 方法. 既然你说你是在onStart方法中下载数据,那么数据会再次被下载。

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

于 2012-08-07T08:49:58.987 回答
1

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

startActivityForResult 

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

于 2012-08-07T08:54:07.323 回答
1

当您按下Back设置活动上的按钮后,您的主要活动变得可见时,onStart将再次调用方法(请参阅活动生命周期)。这就是您再次开始重新下载数据的原因。因此,请保留一些标志,表明您已经开始下载任务。但请记住,您的主要活动可以在其onPause方法被调用后的任何时候被终止。

于 2012-08-07T08:48:16.083 回答