为什么在Activity中注册IabBroadcastReceiver是一个坏主意?

Sou*_*ion 12 android

在Google的应用内结算Trivial Drive示例中,a BroadcastReceiver已注册,可在IabHelper设置成功完成后收听有关更新购买的消息.

然而,作者包括以下注释:

注意:在Activity中注册这个监听器是一个坏主意,但这里完成,因为这是一个SAMPLE.

为什么这个听众这个坏主意呢?

此注释可以在Trivial Drive示例源代码OnIabSetupFinishedListener中的onCreate方法的定义中找到MainActivity

And*_*tor 2

我的猜测是,BroadcastReceiver如果它位于Activity. BroadcastReceiver通常在清单中声明,并且不是由开发人员手动实例化,而是由操作系统手动实例化。如果它在代码中注册,则 Android 操作系统对其的唯一引用是与它所包含的BroadcastReceiver生命周期相关联的特定实例。如果该实例死亡/完成/停止以节省内存,则内部声明将最有可能停止接收更新。ActivityActivityBroadcastReceiver