0

アクティビティの開始時に実行する必要があるメソッドがあります。OnCreate に入れてみましたが、アクティビティがしばらく放置されていると、onCreate が 2 回呼び出されます (その場合、オンライン更新をチェックしているため、時間がかかります)。

そのため、onCreate に update メソッドを入れることができません

何か案は?

ありがとう、ロン

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.options);
    checkUpdate();
}

private void checkUpdate(){
    Runnable runnable = new Runnable() {
        public void run() {
            try
            {
                // create a web request to check if i have the latest update
                HttpClient client = new DefaultHttpClient();  
.
.
.
.
.
        };
    new Thread(runnable).start();
4

3 に答える 3

3

一般に、UIスレッドで実行するのに時間がかかるメソッドを配置することは望ましくありません。代わりに、AsyncTask(またはスレッド/ハンドラー)を作成して、バックグラウンドでメソッドを実行することをお勧めします。また、onStart()がonCreate()からロジックを移動するのに役立つかどうかも確認してください。

于 2011-10-30T15:24:56.077 に答える
1

ブール値を使用して、アクティビティがすでに開始されているかどうかを判断します。

于 2011-10-30T15:11:36.153 に答える
0

そのメソッドを oncreate で実行できますが、クラスのブール値フィールドを追加して、そのメソッドの実行を既に追加しているかどうかを確認します。

于 2011-10-30T15:25:29.567 に答える