我正在通过我的Android应用程序完成我的任务。现在,我有点困惑。我的问题是: 我有一个Main Class(在这种情况下是一个片段),它的作用(除其他外)是它获取给定人名的图像的url然后从该url下载图像。以下是我计划如何进行的事情:
我在单独的类中有两个asynctask,因为将来我也需要它们用于其他类。我不知道我做了什么,我不希望任何内存泄漏,所以应用程序不会崩溃。如果有人能看一眼并建议我,我会非常感激。
Main Class() {
static MyHandler myhandler;
...
...
....
static class MyHandler extends Handler {
....
.....
.......
public void HandleMessage()
{
.....
.......
if(message == "OK")
{
download();
}
else if(message = "BMP")
{
// I am done
....
......
}
}
}
image_url_fetch(myhandler).execute;
public void download()
{
image_download(myhandler).execute;
}
}
class image_url_fetch exteds Asynctask
{
MyHandler myhandler;
image_url_fetch(MyHandler myhandler)
{
this.myhandler = myhandler;
}
...
....
onPostExecute()
{
myhandler.sendmessage("OK");
}
}
class image_download extends Asynctask
{
MyHandler myhandler;
image_download(MyHandler myhandler)
{
this.myhandler = myhandler;
}
...
....
onPostExecute()
{
handler.sendMessage(BMP)
// i have to find a way to send the Bitmap to Main Class
}
}
答案 0 :(得分:0)
最好同时使用同一个AsyncTask获取Image Url和下载Image而不是两个
代码看起来像简化和更快。
如果您不需要AsyncTask来获取Url ...因为它不会花费足够的时间来检索一系列字符。在下载图像之前,使用逻辑在image_download AsyncTask中获取Url。
P.S:为了更好的可读性和标准,请使用以大写字母开头的类名,避免在类名中使用特殊符号。示例
ImageDownloader.java在不描述
的情况下读取和理解上下文非常棒