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



我正在使用最新的AltBeacon库,在MonitorActivity类中使用一些mod运行参考应用程序,并利用引导的前台服务功能。

我的应用程序可以检测前台或服务中的信标,但当我从服务进入活动时,我很难(Android新手(使用活动视觉元素。

在Application类中创建引导程序区域,然后创建MonitorActivity。"活动"的第一个实例保存了一些数据,并引用了用于处理信标数据的外部库。库保存创建它的活动的上下文。

如果MonitorActivity窗口从未被用户干预终止,则应用程序运行良好。从前台到后台,应用程序都按预期运行。

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

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

我试过:

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类,它创建了一个新外部库实例……不好!"为什么这"不好"?

这些问题的答案应该在该外部库的文档中。如果不知道它是什么,很难说得更多。

最新更新