销毁后调用 activity 方法
call activity method after destroy
我正在使用 FCM 获取消息并使用接收器向我的接收器广播消息
收件人代码:
public class MessageReceiver extends BroadcastReceiver {
private FCMInterface listener;
public MessageReceiver(FCMInterface listener){
this.listener = listener;
}
@Override
public void onReceive(Context context, Intent intent) {
}
}
我正在使用一个接口将我的接收器连接到 activity(activity 实现了 FCMInterface)
问题是如果 activity onDestroy 调用然后我调用我的接口函数会发生什么?
即使在调用 onDestroy() 方法后,class 中实现的方法也会被调用。
但您无法再访问 activity 上下文或与 UI 相关的任何内容。
在设置广播接收器时,您应该在 start() 和 stop() 生命周期回调上注册和注销。不这样做会给你内存泄漏异常。
在良好的 android 编程实践中,您通常会尽量避免在调用 onDestroy() 后持有与 activity 上下文相关的对象引用的情况。
我认为您应该将意图发送到您的 activity(如果需要,请设置您的 activity singleTop 或 singleTask 或 SingleIntance)而不是界面。
我正在使用 FCM 获取消息并使用接收器向我的接收器广播消息
收件人代码:
public class MessageReceiver extends BroadcastReceiver {
private FCMInterface listener;
public MessageReceiver(FCMInterface listener){
this.listener = listener;
}
@Override
public void onReceive(Context context, Intent intent) {
}
}
我正在使用一个接口将我的接收器连接到 activity(activity 实现了 FCMInterface)
问题是如果 activity onDestroy 调用然后我调用我的接口函数会发生什么?
即使在调用 onDestroy() 方法后,class 中实现的方法也会被调用。
但您无法再访问 activity 上下文或与 UI 相关的任何内容。
在设置广播接收器时,您应该在 start() 和 stop() 生命周期回调上注册和注销。不这样做会给你内存泄漏异常。
在良好的 android 编程实践中,您通常会尽量避免在调用 onDestroy() 后持有与 activity 上下文相关的对象引用的情况。
我认为您应该将意图发送到您的 activity(如果需要,请设置您的 activity singleTop 或 singleTask 或 SingleIntance)而不是界面。