Android 将前一天的文件发送到服务器
我用简单的日期概念创建了一个文本文件。每天,文本文件都会存储在我的系统中,并在当天的日期。我使用定时器的概念将这些文本文件自动发送到服务器 现在我的问题是我想将前一天的文本文件发送到服务器。例如:如果今天是星期一,并且按照我8点的计时器计划,我需要将星期天(前一天)的文本文件发送到服务器。我被困在这里,我不知道如何做到这一点。 这是我的密码Android 将前一天的文件发送到服务器,android,https,Android,Https,我用简单的日期概念创建了一个文本文件。每天,文本文件都会存储在我的系统中,并在当天的日期。我使用定时器的概念将这些文本文件自动发送到服务器 现在我的问题是我想将前一天的文本文件发送到服务器。例如:如果今天是星期一,并且按照我8点的计时器计划,我需要将星期天(前一天)的文本文件发送到服务器。我被困在这里,我不知道如何做到这一点。 这是我的密码 File mydir = new File("file path"); mydir.mkdirs(); final String filename =
File mydir = new File("file path");
mydir.mkdirs();
final String filename = new SimpleDateFormat("dd-MM-yyyy").format(new Date());
File outputFile = new File(mydir, filename);
FileOutputStream fos = new FileOutputStream(outputFile,true);
您需要做的是构建前一天的文件名,查看它是否存在,然后将其发送到服务器 遵循以下步骤
String filePath = FILES_DIRECTORY + yesterdaysDate + FILE_EXTENSION;
File yesterdaysFile = new File(filePath);
if( yesterdaysFile.exists() ){
// Upload this file to the server
}
您需要定义一个
服务
并使用一个处理程序
,该处理程序最初应根据从开始时间到8点钟的时间差进行设置。那么定时器间隔应该是24小时,在执行过程中你可以发送文件
例如:您将在下午5点安装应用程序,首先需要在晚上8点发送文件,以便计算间隔((8-5)*60*60*60*1000)
,因为handler
使用毫秒。之后,您可以将其设置为24*60*60*60*1000
更新
使用这样的处理程序
private int mInterval = 5000; // 5 seconds by default, can be changed later
private Handler mHandler;
@Override
protected void onCreate(Bundle bundle) {
mHandler = new Handler();
}
Runnable mStatusChecker = new Runnable() {
@Override
public void run() {
updateStatus(); //this function can change value of mInterval.
mHandler.postDelayed(mStatusChecker, mInterval);
}
};
void startRepeatingTask() {
mStatusChecker.run();
}
void stopRepeatingTask() {
mHandler.removeCallbacks(mStatusChecker);
}
在这里,您需要更改间隔,正如我前面解释的那样我的系统中有上一个日期的文件。现在我的问题是如何将这些文件自动发送到服务器,以及如何安排。我想你已经用计时器和时间表等解决了这个问题。使用计时器概念,我将自动将文件发送到服务器。但我的问题是,我想将前几天的文件发送到服务器。现在我只能将今天的文件发送到服务器,这就是我在回答中提到的,在创建文件路径时,使用date对象并减去一天;我的问题是如何从文件列表上传这个文件。请给出一个例子,以便我能更好地理解。上面我粘贴了我的编码一个简单的方法是存储要上传的文件名,然后保存在共享首选项中,这样你就可以避免计算文件名你发布的代码是用来写文件的,不是吗,创建一个服务有很多教程,比如vogella,然后按照上面所说的做我把我所有的文本文件都保存在SD卡上,然后我想从SD卡上把这些文件上传到服务器上