Android 将前一天的文件发送到服务器

Android 将前一天的文件发送到服务器,android,https,Android,Https,我用简单的日期概念创建了一个文本文件。每天,文本文件都会存储在我的系统中,并在当天的日期。我使用定时器的概念将这些文本文件自动发送到服务器 现在我的问题是我想将前一天的文本文件发送到服务器。例如:如果今天是星期一,并且按照我8点的计时器计划,我需要将星期天(前一天)的文本文件发送到服务器。我被困在这里,我不知道如何做到这一点。 这是我的密码 File mydir = new File("file path"); mydir.mkdirs(); final String filename =

我用简单的日期概念创建了一个文本文件。每天,文本文件都会存储在我的系统中,并在当天的日期。我使用定时器的概念将这些文本文件自动发送到服务器

现在我的问题是我想将前一天的文本文件发送到服务器。例如:如果今天是星期一,并且按照我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);

您需要做的是构建前一天的文件名,查看它是否存在,然后将其发送到服务器

遵循以下步骤

  • 创建新的日期对象
  • 从中减去一天-您将得到前一天的对象
  • 基于此对象创建文本文件的文件名
  • 使用此路径名创建文件对象
  • 检查文件是否存在
  • 如果文件存在,请将文件发送到服务器,否则不执行任何操作

    编辑:假设您能够正确创建前一天的文件名

    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卡上把这些文件上传到服务器上