【问题标题】:how to stop BroadcastReceiver if app is closed如果应用程序关闭,如何停止广播接收器
【发布时间】:2011-10-07 19:55:24
【问题描述】:

我在我的 Manifest 中定义了一个广播接收器来控制互联网连接是否处于活动状态。 如果没有互联网,应用会启动一个 Intent 并打开一个新的 Activity。

问题是,如果我关闭应用程序并且我失去了互联网连接,Activity 会弹出!

如何在应用关闭时停止广播接收器?

谢谢

【问题讨论】:

  • 嗯,听起来您的应用完全按照您的指示行事。在清单中注册的所有接收者都是永久性的(据我所知)。但是The problem is that if I close the app and I lose the internet connection the Activity pops up!这不正是您的清单所说的应该发生的事情吗?

标签: android android-manifest broadcastreceiver broadcast


【解决方案1】:

BroadcastReceiver 未关闭。即使您的应用程序已关闭,他也可能会工作。 尝试在 onReceive 方法中添加特殊的布尔语句。

示例:如果应用关闭 - 不要在 onReceive 中执行代码

onReceive(){
    if(isAppRunning){
           // do something if app is running
    }
}

【讨论】:

  • 但是您应该在不使用 BroadcastReceiver 时取消注册它。如果您不取消注册 BroadcastReceiver,您很可能会在注册 BroadcastReceiver 的应用程序被终止时出现异常,在这种情况下 Internet 连接已关闭并正在广播它已关闭。
【解决方案2】:

如果您希望广播接收器仅在 Activity 运行时起作用,您可能需要考虑在 Activity 内部注册。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多