如何从onPostExecute返回值并使用Android在MainActivity中显示?

时间:2014-05-17 11:37:31

标签: android background android-asynctask

我在Android中编写代码,使用Async任务在后台线程中打印值进程。我在onPostExecute函数的后台线程中显示值。但是我想在完成后台进程后在MainActivity中显示值。

Java代码

package com.example.mydoinbackground;

import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.TextView;
import android.app.Activity;


public class MainActivity extends Activity 
{

TextView tt;

String x , y ,z;

@Override
protected void onCreate(Bundle savedInstanceState) 
{

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    tt = (TextView)findViewById(R.id.txt);

    x = "Android";

    y = "Apple";

    z = "Microsoft";

    MyTest mt = new MyTest();

    mt.execute();

            /// I want to display the result here ///

}

private class MyTest extends AsyncTask<String,Void,String>
{

        @Override
        protected String doInBackground(String... arg0)
        {

                String z1 = x+" "+y+" "+z;

                return z1;

        }

        protected void onPostExecute(String result) 
        {

                tt.setText(result);

        }

}}

所以,这是上面的代码。我在onPostExecute中得到了正确的结果并且显示正确,但我想在onCreate MainActivity中显示结果。

请建议我一些好的解决方案。

1 个答案:

答案 0 :(得分:0)

正确的方法是在您启动ProgressDialog时启动AsyncTask,初始化并在ProgressDialog onPreExecute()方法中显示AsyncTask }}。获得结果hide()ProgressDialog并使用如下结果:

somevalue = new MyTask().execute();

thisdocs对您有用