Android:如何从静态 BroadcastReceiver 更新 UI?
Android: How to update the UI from a static BroadcastReceiver?
经过广泛搜索后,我仍然找不到解决问题的方法:
我需要每天运行一次的广播,无论该应用程序是否 运行。但是,如果应用程序是 运行,我还需要在 of/after 广播结束时更新 UI。
我无法使用以编程方式注册的广播,因为它以 Apps 生命周期结束。但是从静态清单注册广播我无法访问 UI (至少我不知道如何访问)。
一种选择是在 onPause 和 onResume 中设置 2 个不同的广播 cancel/start,但我想知道是否有更简单的解决方案?
你需要的不是broadcast receiver along with AlarmManager or JobScheduler for api above 21 and greenrobot事件总线。
AlarmManager 每天或任何时间安排广播调用,每次调用广播时,您都可以从事件总线触发事件并在您想要的地方接收该事件。为什么要使用事件总线的原因是我们不需要处理视图是否可见或 not.iF 视图处于重用状态它触发事件视图和事件总线调用一个方法并在该方法中你可以用视图做任何你想做的事。
就我个人而言,我不喜欢服务,因为现在服务执行真的很昂贵。
Note: the package name where you put alarm manager and broadcast
receiver should be "alert" some samsung mobile are very optimized so
they will only let the package name with "alert to run fully". You
will also need on boot receiver to register receiver and schedule
alarmmanager in case if the phone is booted.
经过广泛搜索后,我仍然找不到解决问题的方法:
我需要每天运行一次的广播,无论该应用程序是否 运行。但是,如果应用程序是 运行,我还需要在 of/after 广播结束时更新 UI。
我无法使用以编程方式注册的广播,因为它以 Apps 生命周期结束。但是从静态清单注册广播我无法访问 UI (至少我不知道如何访问)。 一种选择是在 onPause 和 onResume 中设置 2 个不同的广播 cancel/start,但我想知道是否有更简单的解决方案?
你需要的不是broadcast receiver along with AlarmManager or JobScheduler for api above 21 and greenrobot事件总线。
AlarmManager 每天或任何时间安排广播调用,每次调用广播时,您都可以从事件总线触发事件并在您想要的地方接收该事件。为什么要使用事件总线的原因是我们不需要处理视图是否可见或 not.iF 视图处于重用状态它触发事件视图和事件总线调用一个方法并在该方法中你可以用视图做任何你想做的事。
就我个人而言,我不喜欢服务,因为现在服务执行真的很昂贵。
Note: the package name where you put alarm manager and broadcast receiver should be "alert" some samsung mobile are very optimized so they will only let the package name with "alert to run fully". You will also need on boot receiver to register receiver and schedule alarmmanager in case if the phone is booted.