gpt4 book ai didi

java - 当我的应用程序在后台时如何显示通知?

转载 作者:搜寻专家 更新时间:2023-11-01 09:25:28 24 4
gpt4 key购买 nike

我正在尝试构建一个具有 -

第一个 Activity (启动器 Activity )

第二个 Activity

我想要实现的目标:

第一个 Actvity 从用户获取输入,使用 AsyncTaskLoader 从 Web 获取数据。 在 onLoadFinished 中,它会检查输入是否有效,以及它是否会启动第二个 Activity 的 Intent 以显示更多详细信息。输入也与 Intent 一起传递。

由于网络操作可能需要时间,因此我决定在创建第二个 Activity 之前使用 IntentService 显示通知,即在 onLoadFinished 中调用通知,就在 Intent 。如果第二个 Activity 尚未启动,通知应直接启动它。

什么工作正常:

两个 Activity 和加载器都工作正常。通知也正在显示,一切都按预期工作,前提是用户保持应用程序运行。

什么不是:

当用户在加载数据时离开 First Activity 时,不会显示通知,因为 onPause 已执行。我尝试搜索它并了解了 BroadcastReceiverJobSchedulerFirebaseJobDispatcher 但我无法真正理解它们以及它们如何提供帮助。

那么,我走在正确的轨道上吗?即使应用程序进入后台,我如何才能实现相同的功能?

附言代码比问题提示的要庞大得多,所以我没有包含它。这就是为什么如果解释看起来不完整或困惑,我会尽力澄清您的疑问。

最佳答案

通过 LocalBroadcastManager 注册广播接收器,并定义过滤器。现在,您可以根据过滤器使用 UI 元素或 Intent 。

IntentFilter filter = new IntentFilter();
filter.addAction("A");
filter.addAction("B");
filter.addAction("C");
LocalBroadcastManager.getInstance(getContext()).registerReceiver(dummyReceiver, filter);



private BroadcastReceiver dummyReceiver = new BroadcastReceiver() {
@Override
public void onReceive(final Context context, final Intent intent) {
//Do your work**
}}

试试这个。我已经实现了这个并且它有效。

关于java - 当我的应用程序在后台时如何显示通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51041779/

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