如何从android中的线程获取结果? [英] how to get result from thread in android?

查看:136
本文介绍了如何从android中的线程获取结果?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个主类,一个工作线程类,并且它是分开的.在主线程中,我将输入传递给工作线程并要求其工作.完成后,我希望它将结果发送回主线程.我该怎么办?

I have a main class, a worker thread class and it separated. In main thread, I pass input to worker thread and ask for it to work. When it finish, I want it to send back result to main thread. How can I do that?

public class MainActivity extends Activity{
     Handler showResults = new Handler(){
         public void handleMessage(Message msg){
               //Show results on textview.
         }

     workerThread worker = new workThread();
     worker.setInput(input);
    }

}

工作线程:

public class workerThread extends Thread{
       int result = 0;
       public void run(){
          //when receive input from main class. it will work
          .............
         //after working, it return result, and i want it to send this result 
         //to Handler in main activity, so, i can display that result on textview.
       }

      //function to get input
      public void setInput(){
        //get input form main class to work
      }
}

任何人都知道答案,请告诉我.谢谢.:)

Anyone knows the answer please tell me. Thank you.:)

推荐答案

也许您应该尝试AsynTask,它仅用于以下目的:

Maybe you should try AsynTask, it is designed for just that:

 private class MyThread extends AsyncTask<Params, Progress, Result> {
     protected Long doInBackground(URL... urls) {
            // Calculate and return retulst
     }


     protected void onPostExecute(Long result) {
         // This is executed in main Thread, use the result
     }
 }  

您可以像这样执行该线程:

You execute this thread like this:

new MyThread().execute(params, ...);

请参见 http://developer.android.com/reference/android/os /AsyncTask.html

这篇关于如何从android中的线程获取结果?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆