我知道这个问题已经在这里被问了几次,我也搜索了它们但是没有找到任何最终解决方案。
如何在日期更改时调用活动中的方法?
我在活动中使用了广播接收器,并设置了像这样的intentfilter
intentFilter.addAction("android.intent.action.DATE_CHANGED");
这个东西只有在我手动更改日期时才有效,但必须像在自动更改日期时调用方法一样。
我也用过
intentFilter.addAction("android.intent.action.TIME_TICK");
这个可以完美地工作但是因为这是时间滴答,它发生在每一分钟,它给出了泄露的窗口错误说
Activity com.example.testandroid.MainActivity has leaked IntentReceiver com.example.testandroid.MainActivity$1@4177ffe0 that was originally registered here. Are you missing a call to unregisterReceiver()?
如何克服这个?
任何建议 或好的建议 或者总是欢迎好的代码
感谢
答案 0 :(得分:1)
如果您正在注册从活动/片段/服务中的代码注册的BroadcastReceiver(在onCreate
/ onResume
中),您必须从代码中取消注册它(在onDestroy
中/ onPause
)。
答案 1 :(得分:0)
创建服务并从中注册BroadcastReceiver。用户关闭活动时会破坏活动,并且您需要在接收器后注册接收器 - 只有这样才能注册这样的接收器而不是来自清单服务