系统广播android.intent.action.DATE_CHANGED不响应的问题

    • 原网址
      • 背景
      • 过程
      • 解决方法

原网址

背景

要实现 “在到了某个节日的时候,给手机切换壁纸这样一个功能,如果用户当天手动切换过壁纸,则使用用户切换后的壁纸”。

过程

  • 我使用 android.intent.action.DATE_CHANGED监听系统日期的变化广播,
  • 发现只有在日期变化到将来的某一天的时候,才会发出此广播,例如,今天是9月17号,手动设置时间为18号,会触发该广播,这个时候,如果把时间再设置为10月17号,也会触发广播,但是如果再把时间设置为2014年10月17号之前的任何一天,都不会再响应广播!!!
  • 总之就是已经广播过的日期改变,在这之前的日期改变就不会再广播了,只会广播以后的。令人发指啊!

解决方法

  • 鉴于这个原因,我只能使用Intent.ACTION_TIME_TICK这个action来监听时间和日期的变化
  • 这个action每分钟都会被触发,但是这个action只有在动态注册的情况下才有用,在Android.manifest文件中静态注册是不会被触发的。
  • 使用的时候要注意一下。

你可能感兴趣的:(Android)