3

Activity1 と Activity2 の 2 つのアクティビティがあります。ボタンをクリックすると、Activity1 から Activity2 に切り替わります。しかし、インターネットの速度が遅いため、Activity2 の読み込みに時間がかかっています。アクティビティが読み込まれるまで空の画面が表示されます。

黒い画面の代わりにプログレス バーを表示し、Activity2 の準備ができたら、ユーザーをイライラさせることなくプログレス バーを閉じます。

これを行う方法や開始する方法がわかりません。私はアンドロイドが初めてです。アイデアを提案するか、これに関するリンクを共有してください!!

前もって感謝します!!

4

3 に答える 3

1

アクティビティ 2 の onCreate でAsyncTaskを使用できonPreExecuteますprogressdialogonDoinBackgroundダウンロードを完了します。完了したら、 UI でコンテンツをonPostExecute非表示にして表示します。progressdialog

サンプルコードの場合

private class YourTask extends AsyncTask<Void, Void, ContentType> {
    protected void onPreExecute() {
        //show progressdialog here
    }

         protected ContentType doInBackground() {
             // download content
             return content;
         }


         protected void onPostExecute(ContentType content) {
             // hide progress dialog
              // show the content
         }
     }
于 2013-05-26T06:13:20.017 に答える
0

Activity2 をロード画面 (不確定な進行状況バー、または円で問題ありません) で開始するか、さらに良い: キャッシュされたデータを使用して、重いものをスレッドに置きます。スレッドの最後で、プログレスバーを削除してデータを表示します。

この考えを念頭に置いて、Activity2 は非常に迅速に起動し、データの読み込み中に好きなように表示できます。

スレッドは黒い画面になるのを防ぎます。

public class Activity2 extends Activity {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        new Thread(new Runnable() { 
            public void run(){
               //All your heavy stuff here!!!
            }
        }).start();
    }
}

注: AsyncTask を好む場合もあります。ここでは、目的を達成するためのさまざまな方法の優れた比較を確認できます。

http://techtej.blogspot.be/2011/03/android-thread-constructspart-4.html

于 2013-05-26T06:05:25.883 に答える
0

ASyncTaskあなたが探しているものです。実装するのは難しくありません。

于 2013-05-26T06:11:25.440 に答える