【问题标题】:I have an android background service that keeps on being called我有一个不断被调用的android后台服务
【发布时间】:2019-04-15 12:26:35
【问题描述】:

我每天下午 1 点都会调用后台服务。下午 1 点,我的 Firebase 数据库中的 3 个值应设置为 0。当用户启动某个活动时,会触发后台服务。就像我想要的那样,值在下午 1 点重置为 0,但是,每次下午 1 点之后,当用户启动活动时,服务都会运行重置我的值。如何在下午 1 点将值重置为 0,直到第二天下午 1 点才重新设置?

下面是我在 Service 类中的代码

@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
    calendar = Calendar.getInstance();
    calendar.set(Calendar.HOUR_OF_DAY, 13);
    calendar.set(Calendar.MINUTE, 0);
    calendar.set(Calendar.SECOND, 0);

    timer = new Timer();
    timer.schedule(new TimerTask()
    {
        @Override
        public void run()
        {
            String id = FirebaseAuth.getInstance().getCurrentUser().getUid();

            FirebaseDatabase.getInstance().getReference().child("Users").child(id).child("steps").setValue(0);
            FirebaseDatabase.getInstance().getReference().child("Users").child(id).child("bonusScore").setValue(0);
            FirebaseDatabase.getInstance().getReference().child("Users").child(id).child("stepsScore").setValue(0);
        }
    }, calendar.getTime(), TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS));

    return START_STICKY;
}
@Override
public void onDestroy()
{
    super.onDestroy();
}

这是启动服务的代码。这个方法在这个activity的oncreate方法中被调用。

private void startBackgroundService()
{
    startService(new Intent(this, BackgroundService.class));
}

【问题讨论】:

标签: android firebase android-service


【解决方案1】:

您可以使用工作管理器来安排任务。
here您可以找到入门指南......

【讨论】:

    猜你喜欢
    • 2011-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-02
    • 1970-01-01
    • 2012-08-26
    • 1970-01-01
    相关资源
    最近更新 更多