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

Back[設定]アクティビティのボタンを押した後にメインアクティビティが表示されると、onStartメソッドがもう一度呼び出されます(アクティビティライフサイクルを参照)。これが、データの再ダウンロードをもう一度開始する理由です。したがって、ダウンロードタスクをすでに開始したことを示すフラグを保持します。onPauseただし、メソッドが呼び出された後はいつでもメインアクティビティを強制終了できることに注意してください。

于 2012-08-07T08:48:16.083 に答える
1

データをロードしたい場合は、アクティビティを使用できます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 に答える