【问题标题】:Sending data weekly to the server using POST每周使用 POST 向服务器发送数据
【发布时间】:2018-11-18 00:53:28
【问题描述】:

我正在开发一个加速度计应用程序。我的应用程序正在本地存储(即用户的智能手机)上保存数据。我想将它发送到服务器,但我想每周发送一次。有没有什么功能可以一周后自动发送数据。

我正在为此使用 Android Studio。抱歉,我是新手,请帮忙。

谢谢。

【问题讨论】:

    标签: android post server accelerometer


    【解决方案1】:

    您使用WorkManager 架构组件来实现它。按如下方式安排PeriodicWorkRequest

    创建 Worker 类:

    public class MyWorker extends Worker {
        @Override
        public Worker.WorkerResult doWork() {
    
            // Send your data to server
    
            // Indicate success or failure with your return value:
            return WorkerResult.SUCCESS;
    
            // (Returning RETRY tells WorkManager to try this task again
            // later; FAILURE says not to try again.)
        }
    }
    

    安排工作:

      PeriodicWorkRequest periodicWork = new 
      PeriodicWorkRequest.Builder(MyWorker.class, 7, TimeUnit.DAYS)
                                       .build();
      WorkManager.getInstance().enqueue(periodicWork);
    

    这会创建一个 PeriodicWorkRequest 以每 7 天定期运行一次。您还可以设置一些额外的约束,例如仅在 Internet 连接可用时才执行此任务。这将在 7 天内执行一次任务,并且仅当设备具有互联网连接时。

    【讨论】:

    • 说上传失败,因为没有互联网。如果互联网连接在五分钟后恢复。那我们还要等7天吗?
    • @greenapps Then do we have to wait seven days? 否。PeriodicWorkRequest 保证在此时间间隔内只运行一次(受限制)。只要当时满足其他条件,它就可以立即运行,也可以在周期结束时运行,也可以在两者之间的任何时间运行。
    【解决方案2】:

    你应该试试AlarmManager

    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, Seconds, AlarmManager.INTERVAL_DAY * 7, pendingIntent);
    

    另外,创建接收pendingIntent的BroadcastReceiver,如果您有任何问题,请在下方评论

    【讨论】:

      猜你喜欢
      • 2015-03-11
      • 2016-04-05
      • 1970-01-01
      • 2020-04-13
      • 1970-01-01
      • 1970-01-01
      • 2012-08-16
      • 2019-10-24
      • 2012-11-29
      相关资源
      最近更新 更多