gpt4 book ai didi

android - 从广播接收器向 Activity 发送警报

转载 作者:行者123 更新时间:2023-11-29 01:41:57 25 4
gpt4 key购买 nike

我正在构建一个应用程序,为连接更改注册一个广播接收器。当连接可用时,应用程序执行 GET 请求并在 ListView 中显示数据。

我注册了 Broadcast Reciver (Connetivity Changes),它按预期工作。但我有一个巨大的困境。我想在连接可用时通知 MainActivity。

我的第一个方法是使用一个从 Observable 扩展的类,并在 MainACtivity 中实现 Observer 接口(interface)。我停止了该解决方案,因为我开始使用静态变量和静态方法。我的另一个解决方案是使用在 中注册的自定义广播,想法是从广播接收器发送广播并在 MainActivity 中捕获它。

我阅读了一些建议,但无法获得推荐的解决方案。解决这种情况的最佳方法是什么?

最佳答案

是否仅当 Activity 当前正在运行时才需要通知它?或者下次运行时?

对于第一种情况,可以在activity中创建第二个BroadcastReceiver,在onResume()/onPause()中注册/注销>,然后通过服务发送的 Intent 通知它(所有这些都使用 LocalBroadcastManager)。但是,如果这是您的 Intent (呵呵),那么您还不如在原始广播的 Activity 中有第二个接收器,所以我想这不太可能。

另一种方式(在下次访问时通知Activity)更简单,只需使用SharedPreferences 记录一个 bool 标志,表示任务正在等待。当 Activity 恢复时,检查这个标志,做必要的工作(确保连接仍然可用)然后清除它。

第三种可能的情况(我认为更有可能,即使它与您对问题的描述不符)是您希望在连接可用时下载和存储数据,然后只需 Activity 在启动时加载它。在这种情况下,服务将执行下载,然后通知或使用标志技巧,以便 Activity 知道有新数据可用。

根据具体情况,您可能还想看看 Sync Adapters .

关于android - 从广播接收器向 Activity 发送警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24022828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com