我有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
我有一个使用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
我有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添加采样选项?
我正在使用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插件?我明白我必须以某种方式扩展基本的"窗口"对象?怎么做 ?
谢谢.