Java(Android)文件对象速度太慢,无法执行异步任务
在我正在开发的Android应用程序中,我需要创建一个文件的备份,并在启动时检查它是否与远程文件相同,如果它们有不同的字节,然后用远程文件覆盖备份,然后检查它们是否相同,如果相同,返回true。为此,我有以下过程:Java(Android)文件对象速度太慢,无法执行异步任务,java,android,android-asynctask,sleep,Java,Android,Android Asynctask,Sleep,在我正在开发的Android应用程序中,我需要创建一个文件的备份,并在启动时检查它是否与远程文件相同,如果它们有不同的字节,然后用远程文件覆盖备份,然后检查它们是否相同,如果相同,返回true。为此,我有以下过程: if(!backupFileExists(){ backupFile.createNewFile(); } if(!checkBackupAndRemoteFilesAreIdentical()){ <----First Time if(overwriteB
if(!backupFileExists(){
backupFile.createNewFile();
}
if(!checkBackupAndRemoteFilesAreIdentical()){ <----First Time
if(overwriteBackupFileWithRemoteFile()){
if(checkBackupAndRemoteFilesAreIdentical()){ <---- Second Time
return true;
}
}
}
return false;
如果(!backupFileExists(){
backupFile.createNewFile();
}
如果(!checkbackupandremotefilesareidential()){这是正常现象,则网络操作将比加载第一个活动花费更长的时间。
如果您的第一个活动需要此文件(或其中的一部分)才能工作,则您需要从服务器获取它(是的!在异步任务中),并更新应用程序将依赖的对象。将应用程序逻辑/设计与数据源解耦
这个问题是一个一般性的问题,我们通常做的是,我们从服务器获得的第一个活动的数据很少,然后,当用户导航到其他屏幕时,数据将在此阶段可用。
我建议您考虑一下您的应用程序数据设计。在每个步骤中需要哪些服务器数据以及如何更新这些数据。如果您是服务器的所有者,并且能够创建新的端点,请尝试设计快速端点、减少数据量、公开“http头”操作以仅获取内容长度。。。
如果您有更多关于您试图构建的内容的详细信息,我将非常乐意详细介绍。您应该写一篇更好的文章。您的文章中没有文件对象。没有asynctask。而且您似乎没有意识到asynctask是异步工作的。您应该只在onPo中处理此下载的检查stExecute。所以把最后一个if语句放在那里。checkbackupandremotefilesareidential()
您在该函数中也使用了异步任务吗?还是线程?那么它应该是一个void函数。