什么参数传递给AsyncTask <arg1,arg2,arg3>?我不明白我应该放在这里以及这些论点最终的位置?究竟应该放什么,它究竟会去哪里?我是否需要包括所有3或者我可以包括1,2,20?
3 回答
![?](http://img1.sycdn.imooc.com/533e51f30001edf702000200-100-100.jpg)
波斯汪
TA贡献1811条经验 获得超4个赞
把事情简单化!
一个AsyncTask
是在后台线程中运行的后台任务。它需要一个输入,执行进度并给出输出。
即
AsyncTask<Input,Progress,Output>
。
在我看来,混淆的主要来源是当我们试图记住中的参数时AsyncTask
。
关键是不要记住。
如果您可以想象您的任务真正需要做什么,那么AsyncTask
使用正确的签名编写将是一件小事。
只需弄清楚你的输入,进度和输出是什么,你会很高兴。
AsyncTask的核心!
doInBackgound()
方法是在一个最重要的方法AsyncTask
,因为
只有此方法在后台线程中运行并将数据发布到UI线程。
它的签名随
AsyncTask
参数变化。
让我们来看看这段关系
doInBackground()
而且onPostExecute()
,onProgressUpdate()
也是相关的
告诉我代码
那么我将如何编写DownloadTask的代码?
DownloadTask extends AsyncTask<String,Integer,String>{ @Override public void onPreExecute() {} @Override public String doInbackGround(String... params) { // Download code int downloadPerc = // calculate that publish(downloadPerc); return "Download Success"; } @Override public void onPostExecute(String result) { super.onPostExecute(result); } @Override public void onProgressUpdate(Integer... params) { // show in spinner, access UI elements }}
你将如何运行这个任务
new DownLoadTask().execute("Paradise.mp3");
- 3 回答
- 0 关注
- 612 浏览
添加回答
举报
0/150
提交
取消