AsyncTask

来源:互联网 发布:网络机房存储设备 编辑:程序博客网 时间:2024/06/05 11:45
public class MainActivity extends AppCompatActivity {    private TextView tv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        tv=(TextView)findViewById(R.id.mytexts);        Task task = new Task();        task.execute("http://www.tngou.net/api/cook/list?rows=30&id=1",tv);    }//自定义AsyncTask 三个参数:参数一:刚开始传递的数据(这个示例传递了网络图片的地址)   参数二:这个是进度数据  // 参数三:这个执行到最后返回的数据类型 
public class Task extends AsyncTask<Object, Void, String> {    TextView tv;    /**     * 后台运行的方法  其实doInBackground代替线程     * doInBackground就是在一个子线程运行     * @param params     * @return     */    @Override    protected String doInBackground(Object... params) {        if(params!=null&&params.length>0){            String url = params[0].toString();            tv=(TextView)params[1];            String result = Data.getUrlConnect(url);            return result;        }        return null;    }    /**     * doInBackground运行过程中 不断更新数据     * 主线程运行     * @param values     */    @Override    protected void onProgressUpdate(Void... values) {        super.onProgressUpdate(values);    }    /**     * 主线程运行的 代替HandlerhandlerMessage方法     * @param s     * @return     */    @Override    protected void onPostExecute(String s) {        if(tv!=null)            tv.setText(s);        else            tv.setText("null");        super.onPostExecute(s);    }}




 }
原创粉丝点击