【问题标题】:Broadcast receiver inside activity活动内的广播接收器
【发布时间】:2011-08-04 16:44:18
【问题描述】:

我是安卓新手。如果我做得好,我想从更有经验的程序员那里知道。在一个活动中,我以这种方式声明了一个 BroadcastReceiver:

private BroadcastReceiver locationUpdateReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {         
                    //Do something
        }
    }
};

我在 onResume() 上注册接收器并在 Pause() 上取消注册它。我可以在内存泄漏中运行吗? 如果不是,如果我声明一个扩展 BroadcastReceiver 的非静态内部类并且我在活动中使用它,总是像以前一样注册和取消注册,那会是一样的吗? (我想通过这种方式我可以控制它的生命周期)。

提前致谢。

【问题讨论】:

    标签: android broadcastreceiver


    【解决方案1】:

    这样做不会导致任何内存泄漏。

    【讨论】:

    • 谢谢,你的意思是两种情况?
    • 是的,内部类也是一样的。对于每一个onResume,一旦activity进入后台(临时或者activity将被销毁时)就会调用onPause,你可以确定你的逻辑没问题。
    • 最好注册onStart()而不是onResume()。您应该尽可能避免在 onResume/onPause 中编写代码,以避免应用程序之间的转换缓慢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-13
    相关资源
    最近更新 更多