在android中下载文件并检查文件版本

时间:2014-01-03 01:15:35

标签: android

我正在尝试从我的服务器下载文件,然后将它们保存到SD卡。

现在我不是要求如何下载它们,但我还有其他问题:

1下载期间用户退出我的应用程序

当用户点击Download按钮时,我会显示ProcessDialog,其中包含两个按钮“取消”和“在后台执行”。

如果用户点击“取消”,这很简单,请停止下载。

但是当用户单击“在后台执行”时,我将关闭对话框,但下载任务(AsyncTask)将继续工作。

现在我想知道如果用户退出我的应用程序会发生什么?

2文件版本检查

在我的应用程序中,我将检查我的服务器以查看本地文件(在SD卡上)是否是最新的,如果没有,那么我将告诉用户下载最新文件。

现在我想知道进行版本检查是否有好主意?

我目前使用“上次修改日期”,但我不确定这是不是最好的主意。

我想知道我们是否可以在文件中添加一些标签以使其更清晰?

3 个答案:

答案 0 :(得分:0)

对于第一个问题,即使用户退出,如果您想在后台执行某些操作,请在服务而非活动中执行此操作。如果您使用HTTP的 Range 标题进行分块下载,那么将作业传递给服务将非常容易。但我建议您首先在服务中启动下载主题。

第二个问题。有很多方法可以使用上次修改日期进行版本检查,但如果某个其他应用程序触及该文件,可能会出错。您可以在数据库或共享首选项中保存某些版本标识符,也可以只保存在文件中。如果你的文件不是太大,你可以只比较文件哈希(比如做MD5或CRC)。

答案 1 :(得分:0)

我相信如果你做得正确,将继续从服务器下载。在后台检查这些链接......

http://developer.android.com/reference/android/app/Service.html -和- http://www.vogella.com/articles/AndroidBackgroundProcessing/article.html

至于你的另一个问题。如果您希望用户在修改时获取最新版本,则上次修改日期应该没有问题。这是有道理的。

答案 2 :(得分:0)

1.如果您使用服务下载文件,那么如果用户退出将要下载的应用程序。

2.我还使用“上次修改日期”来检查我的文件。我认为这是一个好主意。