【发布时间】:2026-02-06 14:25:01
【问题描述】:
我有一个应用程序,它依赖于推送通知来更新用户在线发生的事件。为此,我有一个向用户显示游戏的普通 Activity,然后是一个用于处理传入推送消息的 BroadcastReceiver。
但是,每当我们收到一条消息时,它都会创建我们的应用程序的一个实例。在我们的 Application.onCreate() 函数中,我们执行一些预加载和处理逻辑,这些逻辑只应在创建的应用程序是实际的 Activity 而不是 BroadcastReceiver 时运行。
我也尝试将处理和逻辑移到 Activity.onCreate() 中,但整个生命周期比 Application 的可预测性要低得多,因此 Application 方法似乎是首选,但我对替代解决方案持开放态度。
如何确定应用程序实例是为 BroadcastReceiver 还是 Activity 创建的?
【问题讨论】:
-
一些附加信息——这里是该区域的 Urban Airship 文档:urbanairship.com/docs/…
-
现在我想起来了,我什至不确定是否需要该服务,因为 Android 应该让 C2DM 服务自己运行。在这种情况下,我将只依赖我的 BroadcastReceivers。但是,这仍然存在问题,因为我相信每次实例化 BroadcastReceiver 时都会创建一个 Application 对象。
标签: android android-activity process broadcastreceiver android-c2dm