0

在我的应用程序的一个活动中,我动态地制作了一堆编辑文本字段,然后使用来自 sharedpreferences 的一些文本设置它们。我意识到这对于主线程来说有点多,这就是为什么应用程序在加载时会有一些滞后的原因。我对线程的概念很陌生,所以我想知道最好的方法是将来自 sharedpreferences 的字符串加载到另一个线程中,然后同时显示一个加载栏(或类似的)(在主线程中我猜测)。请详细解释,因为线程对我来说是新的。

此外,如果有任何关于这方面的教程可以为我指明正确的方向,它们也会很有用。提前致谢。

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 回答