繁体   English   中英

Android - 纠正多线程

Android - Correct Multithreading

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

有人可以帮我一下这张图片下载代码吗? 我希望它在后台运行,但似乎新的Thread(新的Runnable())绝对不是要走的路,根据Android 文档 ,我不知道如何处理这个问题:

// caller
while( exhibitorCursor.moveToNext() )
{
  new Thread(new Runnable()
  {
    public void run()
    {
      downloadImage(exhibitorId, exhibitorString, DOWNLOAD_EXHIBITOR);
    }
  }).start();
}

// first function
public void downloadImage(long id, String externalImageUrl, int type)
{
  // logic junk here

  if( !(new File(localImageName).exists()) )
  {
    DownloadFromUrl(externalImageUrl, localImageName);
  }
}

// second function
public void DownloadFromUrl(String fileUrl, String fileName)
{
  // this is the downloader method
  try
  {
    URL url = new URL(fileUrl);

    File file = new File(fileName);

    URLConnection ucon = url.openConnection();

    InputStream is = ucon.getInputStream();
    BufferedInputStream bis = new BufferedInputStream(is, 8192);

    ByteArrayBuffer baf = new ByteArrayBuffer(50);
    int current = 0;
    while( (current = bis.read()) != -1 )
    {
      baf.append((byte)current);
    }

    /* Convert the Bytes read to a String. */
    FileOutputStream fos = new FileOutputStream(file);
    fos.write(baf.toByteArray());
    fos.close();
  }
  catch( IOException e )
  {
    Log.d("ImageManager", "Error: " + e);
  }

}

这样做有一种不那么痛苦的方法吗? 我只下载了20个图像,以便稍后在应用程序中使用,并立即将其锁定。

它可能没有关系,但这就是我在Obj-C中为iPhone版本实现它的方式。

for( NSDictionary *exhibitor in exhibitors )
{
    [self performSelectorInBackground:@selector(downloadExhibitorImage:) withObject:exhibitor];
}
2 个回复

看一下DownloadManager,并作为AsyncTask的替代方案

1 使用spaCy纠正多线程lemmatization

我正在尝试使用spaCy对我的语料库进行词素化多线程处理。 根据文档 ,这是我目前的方法: 但是,无论使用10个线程还是1个线程(我在100.000个文档上使用它),这都花费相同的时间,这表明它不是多线程的。 我的实现有误吗? ...

2 Android多线程数据

如何为项目列表承担进程多线程负载。 我从api列表字符串元素获取。 接下来需要获取此列表中项目的数据。 加载需要使用rxjava。 结果需要做单订阅。 ...

3 Android多线程应用

我的Android应用程序中有两个线程,一个线程每1/2秒增加一次速度值,另一个线程从该数组列表中获取平均值,以减少波动,问题是只有一个线程正在启​​动,我不知道为什么。 这是代码: ...

4 Android - 多线程

在android上创建一个简单的游戏。 我必须在画布的随机位置绘制随机图片。 问题出在图片上并消失了。 每张照片应该在5秒内消失(在此期间,移动的英雄将不得不抓住它们)。 我试图在单独的线程中绘制图片,但它无法正常工作。 在这段代码中,我希望tmpBitmap在5秒内出现并 ...

5 Android多线程

我可以在Android应用程序中同时运行几个Java线程? 我认为这将取决于体系结构,是否有办法确定相同的事物? ...

6 Android 多线程

我正在尝试在 Android 中开发简单的多线程应用程序。 这是我的代码如下: 并且我正在尝试在 stringbuffer 缓冲区中显示数据。每次运行线程时都应将数据附加到 Stringbuffer 中。但是通过编辑文本没有显示任何内容。我做错了什么? ...

7 Android:动画和多线程

我试图在我的应用程序中实现多线程,我想知道我该怎么做。 基本上在一个视图中,我有2个块,我希望这两个块在屏幕周围反弹,但是我希望每个块都在自己的线程上运行。 因此,单视图多线程...如果可能的话。 这是我到目前为止的内容: 我的BounceView是: 因此,这很完美,但是 ...

8 Android的多线程建议

我正在尝试使我的Android应用程序具有更高的响应速度,并且这样做是在使用多线程。 我知道线程调度是由OS控制的,这种责任在OS线程调度程序的手上,我们不能直接分配它们。 经过几次运行后,我感觉到我的线程正在单核中运行,只是为了节省功率,因为​​它们彼此依赖(此处为生产者/消费者模式) ...

9 Android多线程错误

当我调用finishRecord()调试器返回错误时: 我的finishRecord方法是: 如果我评论mr.stopRecording(); 项目可以成功运行 但我需要调用mr.stopRecording(); 有人可以帮我解决这个问题吗? ...

10 Android多线程

我有一段代码正在删除位图背景,起初该代码大约花费40s>来删除每个位图背景,但我在hauwei y320 -u30上将其优化为大约12s ,四核分别为1.3GHz,在Galaxy s3 Quadcore上为6s 。与第一个产品相比,这是一个很好的选择,它还不够好。我希望华为的产品在2s到3 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM