AltBeacon 库作为前台服务,激活时 Activity 元素出现问题

AltBeacon library as a foreground service, issues with Activity elements when becoming active

我正在使用最新的 AltBeacon 库和 运行 参考应用程序以及 Monitor 中的一些模组Activity class 以及利用 [=42] 的前台服务功能=]ping.

我的应用程序可以在前台或服务中检测到信标,但我(Android 新手)在从服务到活动 Activity 时很难处理活动视觉元素。

在应用程序class中创建bootstrap区域,然后创建监视器Activity。 Activity 的第一个实例包含一些数据和对用于处理信标数据的外部库的引用。 该库包含创建它的 Activity 的上下文。

如果 MonitorActivity window 从未被用户干预杀死,则该应用程序运行良好。从前台到后台,应用程序的行为符合预期。

如果 MonitorActivity 被终止,该服务仍然运行并且似乎有对初始 Activity 的引用,因为在该实例中创建的外部库仍在运行。显示外部库结果的方法失败,因为 UI 元素不再存在。

我想设置一个通知,然后加载 Activity 以显示信标数据的结果,但在我的测试中我得到另一个新的 Activity class,它创建一个新的外部库实例....不好!

我试过:

Intent intent = new Intent(this, MonitorActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP );
    PendingIntent pendingIntent = PendingIntent.getActivity(
            this, 0, intent, PendingIntent.FLAG_ONE_SHOT
    );

以为它会使用原来的 Activity 但它创建了一个新实例。

原始的 Activity class 必须仍然存在,因为它正在执行所需的逻辑。

有没有办法重新启用其视觉元素以显示在原始 Activity 中创建的外部库的结果?

这条语句是关键:

The 1st instance of the Activity holds some data and references to an external library used to act on the beacon data. The library holds context of the Activity that created it.

你没有说这个库是什么,但根据你的描述,它必须设计用于处理 Activity 中的视觉数据。活动被销毁,因此如果设计得当,该库的设计必须能够处理这种情况。 *“它如何推荐它与多个活动一起使用?**

您是否应该在每个 activity 中保留对它的引用?如果您在另一个 activity 中创建一个新实例可以吗?你说这是个问题:"I get another new Activity class, which creates a new external library instance.... not good!"为什么会这样"not good"?

这些问题的答案应该在该外部库的文档中。不知道是什么,不好多说