在应用程序的主要活动中,我在onStart()
. 当我打开设置并点击Back
按钮时,我完成Settings Activity
并返回主活动。问题是正在重新下载数据。
那么,怎样才能避免数据的重新下载呢?
我虽然有,startActivityForResult
但我不知道如何使用它,我不明白它是如何工作的。
先感谢您!
在应用程序的主要活动中,我在onStart()
. 当我打开设置并点击Back
按钮时,我完成Settings Activity
并返回主活动。问题是正在重新下载数据。
那么,怎样才能避免数据的重新下载呢?
我虽然有,startActivityForResult
但我不知道如何使用它,我不明白它是如何工作的。
先感谢您!
在主活动类中定义一个静态变量,如下所示:
public static bool download = true;
当您从设置返回时,将其值更改为 false,例如:
MainActivity.download = false;
并将您的下载方法放在这样的 if 语句中:
if (download) {
yourdownloadcode();
}
这是Android的通常行为。当您启动“设置活动”时,您的“主要活动:调用 onStop 并停止活动。现在,当您单击“设置活动”中的后退按钮时,“主要活动”会出现在最前面并再次调用 onStart 方法. 既然你说你是在onStart方法中下载数据,那么数据会再次被下载。
您可以通过下载 onCreate 方法中的数据来避免这种情况。
如果您只想加载数据,您可以使用 Activity onCreate
。这是活动生命周期信息:http: //developer.android.com/reference/android/app/Activity.html
startActivityForResult
您可以像回调一样使用设置屏幕 - 如果您在更改设置屏幕上的配置后需要更改主活动布局。你可以在这里找到一个例子http://saigeethamn.blogspot.com/2009/08/android-developer-tutorial-for_31.html
当您按下Back
设置活动上的按钮后,您的主要活动变得可见时,onStart
将再次调用方法(请参阅活动生命周期)。这就是您再次开始重新下载数据的原因。因此,请保留一些标志,表明您已经开始下载任务。但请记住,您的主要活动可以在其onPause
方法被调用后的任何时候被终止。