代码之家  ›  专栏  ›  技术社区  ›  nope

安卓“每周挑战”

  •  0
  • nope  · 技术社区  · 3 年前

    我的android kotlin应用程序中有一个按钮,点击后会从Firebase存储上的文件中输出一个随机单词。我希望每个用户的单词在一周内都是同一个单词(对于每个用户,而不是每个人),然后(例如周日12:00)更改为另一个单词。

    到目前为止,我已经尝试过:

    1. 当用户首次登录时分配单词

    2. 设置 JobService 检查是否是星期日12

      val jobScheduler=requireContext().getSystemService(Context.JOB_SCHEDULER_SERVICE)作为jobScheduler

       val componentName = ComponentName(requireContext(), FetchRandomWordJobService::class.java)
      
       val jobInfo = JobInfo.Builder(0, componentName)
           .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
           .setPersisted(true)
           .setPeriodic(AlarmManager.INTERVAL_DAY)
           .setExtras(PersistableBundle())
           .build()
      
       jobScheduler.schedule(jobInfo)
      
    class FetchRandomWordJobService : JobService() {
    
        override fun onStartJob(params: JobParameters?): Boolean {
            val calendar = Calendar.getInstance()
            if (calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY && calendar.get(Calendar.HOUR_OF_DAY) == 12) {
                //assign new word
            }
            return false
        }
    
        override fun onStopJob(params: JobParameters?): Boolean {
            return false
        }
    

    但它没有起作用。 有人能提出为什么它不起作用/另一个想法如何以另一种方式实现这样的事情吗?

    0 回复  |  直到 3 年前