我创建了一个简单日期概念的文本文件。每天,文本文件将在当天的日期存储在我的系统中。我使用计时器概念自动将这些文本文件发送到服务器。
现在我的问题是我想将前一天的文本文件发送到服务器。例如:如果今天是星期一,并且根据我的计时器时间表8,我需要将星期日的(前一天)文本文件发送到服务器。我被困在这里,我不知道如何实现这一目标。 这是我的编码
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);
答案 0 :(得分:1)
您需要定义service
并使用handler
,该((8-5) * 60 * 60 *60 * 1000)
最初应按照从开始时间到8'O时钟的时差进行设置。那么计时器间隔应该是24小时,在执行过程中你可以发送文件......
例如:您是在下午5点安装应用程序,您需要在晚上8点开始发送文件,以便计算自handler
使用milliseconds
以来的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);
}
<强>更新强>
使用像这样的处理程序
{{1}}
在这里你需要改变我之前解释的间隔
答案 1 :(得分:0)
您需要做的是构建前一天的文件名并查看它是否存在,然后将其发送到服务器。
请按照以下步骤操作。
如果文件存在,请将文件发送到服务器,否则不执行任何操作。
修改:假设您能够正确创建前一天的文件名,
String filePath = FILES_DIRECTORY + yesterdaysDate + FILE_EXTENSION;
File yesterdaysFile = new File(filePath);
if( yesterdaysFile.exists() ){
// Upload this file to the server
}