gpt4 book ai didi

android - IntentService 是否从 BroadcastReceiver 开始创建 Application 类的实例?

转载 作者:太空宇宙 更新时间:2023-11-03 13:33:48 25 4
gpt4 key购买 nike

我正在编写一些代码,可以在设备/应用程序 C2DM 注册 token 更改时将一些设备持久数据迁移到网络服务器。

这最终由广播接收器启动(特别是作为接收 Google C2DM 注册 token 的结果调用的接收器)

@Override
public void onRegistered(Context context, String registrationId) throws IOException {
Log.d(TAG, "registrationId: " + registrationId);
Intent selectIntent = new Intent(this, AlertMigrationService.class);
this.startService(selectIntent);
}

(注意:我的应用程序使用扩展普通应用程序类的自定义应用程序类。)

我认为从技术上讲,当我的应用程序在后台(或未运行)时可以调用此接收器 - 那么当我的 Intent 服务启动时会发生什么?它是否会加载我的整个应用程序并创建我的 Application 类的实例?

从 IntentService 内部调用我的 Application 类的静态方法对我来说安全吗(甚至是个好主意)? (这些静态方法都有在Application.onCreate中初始化的返回对象)

最佳答案

当您的 IntentService 启动时,如果您的应用程序正在运行,它创建您的 Application 类的实例。如果您的应用程序处于 Activity 状态,您将能够按原样访问修改后的特定于应用程序的对象。 但是如果您的应用程序被终止,然后 br 启动服务,则会创建整个应用程序的新实例。静态方法不会给你你当时想要的值。我建议将数据保存在某处并且不依赖于应用程序生命周期。

关于android - IntentService 是否从 BroadcastReceiver 开始创建 Application 类的实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9896156/

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