0

私のアプリの 1 つのアクティビティで、一連の編集テキスト フィールドを動的に作成し、それらに共有設定のテキストを設定します。これは、メイン スレッドが処理するのが少し大変であることを認識しています。そのため、アプリのロード時に遅延が発生します。私はスレッドの概念にまったく慣れていないので、共有設定からの文字列の読み込みを別のスレッドに配置し、その間に読み込みバー(または同様のもの)を表示するのが最善の方法であると考えていました(メインスレッドで私は推測してみて)。スレッドは私にとって初めてのことなので、詳しく説明してください。

また、これに関するチュートリアルがあれば、正しい方向を示してくれるので、それらも役に立ちます。前もって感謝します。

4

3 に答える 3

1

UI を変更できるのはメイン スレッドだけですが、AsyncTaskクラスを使用して他のすべての作業を別のスレッドで実行し、UI に配置する準備ができたらメイン スレッドにプッシュすることができます。

于 2013-05-24T10:29:01.473 に答える
1

AsyncTask が必要です。AsyncTask を拡張するクラスを作成する doInBackground() で重い作業を行う 例:

 Class Example extends AsyncTask{
    @Override 
    protected void doInBackground(Object... args){
        //do ur stuff
    }
    @Override 
    protected void onPostExecute(Object arg){
        //do what you wanna do after doInBackground
    }
 } 

new Example().execute(); でタスクを呼び出します。

于 2013-05-24T10:32:05.890 に答える
0

あなたはこのようなものを持つことができます:あなたを導くために

final ProgressDialog pd = ProgressDialog.show(context, "Title", "Loading");
                            new Thread(new Runnable()
                                {

                                    @Override
                                    public void run()
                                        {
                                            //get data from shared preferences 

                                            runOnUiThread(new Runnable()
                                                {

                                                    @Override
                                                    public void run()
                                                        {
                                                            pd.dismiss();
                                                            //set that text to your dynamic textview

                                                        }
                                                });

                                        }
                                }).start();
于 2013-05-24T10:31:10.763 に答える