小编use*_*302的帖子

Android下载多个文件并在ListView中显示进度

我有N个文件要下载.我想在后台连续下载它们 - 一个接一个.我想在ListView中显示进度和状态.所以,ListView看起来像:

File1 ...已下载

文件2 ....下载

File3 ...正在进行中说39%

File4 ......待定

....

Listview定期刷新(比如每2秒),文件很大:50 MB左右.所以他们需要1分钟以上才能下载.

我将文件URL列表传递给AsyncTask并将其下载到后台.问题是如何将进度反馈回ListView.

考虑用户可能会离开ListView页面离开AsyncTask只能返回以查看下载状态.

那么ListView如何"观察"AsyncTask的进度并显示它呢?

我正在考虑添加一组静态变量AsyncTask(使用"Synchronized"块保护它们)并在Fragment中使用显示ListView的定期UI更新程序.所以片段会有这样的东西:

有时间延迟重复一项任务?

是否有设计模式,公共项目或示例代码?

对不起,我不是一张好照片.我所描述的最接近的是这里(类似但我计划使用AsyncTask和串行下载):

图片

android listview android-listview android-asynctask android-fragments

13
推荐指数
2
解决办法
4462
查看次数

ActionBarSherlock + Tabbed Fragments + ViewPager内幕片段

我有一个使用ActionBarSherlock的选项卡式应用程序.ActionBar中的每个选项卡都是片段.其中一个片段包含一个viewpager,它显示了许多片段 - 每个片段都包含一个来自URL的图像(使用ImageView的变体).

当你第一次点击标签时,整个过程很好用 - 它显示了显示图像的寻呼机.第二次单击选项卡(单击其他选项卡后)没有任何反应 - 寻呼机不显示,屏幕保持空白(除了actionBar).代码如下.似乎正在创建FragmentPagerAdapter,但它不是第二次翻阅项目.

我究竟做错了什么 ?

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import com.actionbarsherlock.app.SherlockFragment;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class SurfaceChartFragment extends SherlockFragment {

private ViewPager mPager;
private SurfacePagerAdapter mAdapter;
private static String [] urls = { "gif url 1", "gif url 2 etc." };

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-viewpager actionbarsherlock android-nested-fragment

6
推荐指数
1
解决办法
899
查看次数

gdalwarp太慢(与gdal_merge相比)

我有70多种TIFF格式的光栅图像,我试图合并.

原文可以在这里找到:http: //www.faa.gov/air_traffic/flight_info/aeronav/digital_products/vfr/

在预处理之后(pct2rgb,gdalwarp单独的图表,gdal_translate来剪切项圈)我尝试通过gdalwarp运行它们以使用如下命令拼接它们:

gdalwarp --config GDAL_CACHEMAX 3000 -overwrite -wm 3000 -r bilinear -srcnodata 0 -dstnodata 0 -wo "NUM_THREADS=3" /data/aeronav/sec/c/Albuquerque_c.tif .....70 other file names ...master.tif
Run Code Online (Sandbox Code Playgroud)

经过12个小时的处理:

创建321521P x 125647L的输出文件.处理输入文件/data/aeronav/sec/c/Albuquerque_c.tif.0 ... 10 ... 20 ... 30 ... 40 ...

这意味着gdalwarp永远不会完成.

相反.像这样的gdal_merge命令:

gdal_merge.py -n 0 -a_nodata 0 -o /data/aeronav/sec/master.tif /data/aeronav/sec/c/Albuquerque_c.tif ......70 plus files.....
Run Code Online (Sandbox Code Playgroud)

几个小时后完成.

由于"平均"采样,gdal_merge的问题是质量较差的输出.我想在最小的情况下使用"双线性" - 如果可能的话,使用"立方"采样,并且需要使用gdalwarp.

为什么这两者的表现有如此大的差异?gdalwarp为什么不想完成?是否有任何其他命令行选项可以加速gadalwarp或者有没有办法向gdal_merge添加采样选项?

gis raster gdal

6
推荐指数
1
解决办法
3161
查看次数

使用Typescript访问Apache Cordova插件

我正在使用Ionic + Angular + Apache Cordova 4.0使用Visual Studio 2003更新4对A Hybrid Mobile应用程序进行原型设计.我安装了SQLite插件来访问数据库.

访问此插件的推荐方法是:

var db = window.sqlitePlugin.openDatabase({name: "my.db"});
Run Code Online (Sandbox Code Playgroud)

但我没有插件的打字稿定义 - 只有Cordova.SO Typescript不知道sqlitePLugin及其抱怨它.

如何从Typescript代码访问Cordova插件?我明白我必须以某种方式扩展基本的"窗口"对象?怎么做 ?

谢谢.

cordova typescript cordova-plugins

5
推荐指数
1
解决办法
3271
查看次数