通过广播通知当前可见 activity
Notify currently visible activity via broadcast
我对 android 编程比较陌生,目前正在使用 Mono Android (Xamarin) 开发 android 应用程序。我还可以将 java 解决方案转换为 C#,所以不用担心发布 java 解决方案 :)。现在进入场景,
我的应用流程如下;
用户启动应用程序 --> 应用程序执行后台线程以检查项目更新 --> 允许用户在线程返回时浏览应用程序 --> 如果有更新,则当前可见 activity 应该显示一个 HUD,必须更新项目。
我已尝试通过创建一个广播接收器来实现上述功能,该接收器在有更新时发出通知。然后,我从一个基础 class 派生所有活动,该基础 class 收听此广播并显示 HUD 加载器。
然而,当有更新时,似乎后台堆栈中的所有活动也会得到通知,并且显示 HUD 加载程序的同一代码段被执行了多次。是否有任何特定的方法来通知最顶层(应用程序拥有和可见)activity 以便加载程序只显示一次?或者除了使用广播接收器之外,还有其他方法可以实现这一目标吗?如有任何帮助,我们将不胜感激。
实现它的一种方法是在 OnStart() 和 OnStop() 回调中注册和注销您的广播接收器,如 here. For more on Android lifecycle callbacks refer this guide
所述
我对 android 编程比较陌生,目前正在使用 Mono Android (Xamarin) 开发 android 应用程序。我还可以将 java 解决方案转换为 C#,所以不用担心发布 java 解决方案 :)。现在进入场景,
我的应用流程如下;
用户启动应用程序 --> 应用程序执行后台线程以检查项目更新 --> 允许用户在线程返回时浏览应用程序 --> 如果有更新,则当前可见 activity 应该显示一个 HUD,必须更新项目。
我已尝试通过创建一个广播接收器来实现上述功能,该接收器在有更新时发出通知。然后,我从一个基础 class 派生所有活动,该基础 class 收听此广播并显示 HUD 加载器。
然而,当有更新时,似乎后台堆栈中的所有活动也会得到通知,并且显示 HUD 加载程序的同一代码段被执行了多次。是否有任何特定的方法来通知最顶层(应用程序拥有和可见)activity 以便加载程序只显示一次?或者除了使用广播接收器之外,还有其他方法可以实现这一目标吗?如有任何帮助,我们将不胜感激。
实现它的一种方法是在 OnStart() 和 OnStop() 回调中注册和注销您的广播接收器,如 here. For more on Android lifecycle callbacks refer this guide
所述