Java 一项活动被认为是被破坏的。然而,它';android在没有我明确启动的情况下重新创建了什么?

Java 一项活动被认为是被破坏的。然而,它';android在没有我明确启动的情况下重新创建了什么?,java,android,design-patterns,android-activity,mvp,Java,Android,Design Patterns,Android Activity,Mvp,所以,我面临着一种奇怪的行为。我正在我的应用程序中实现MVP设计模式。 我有两项活动,A和B。 活动A的演示者正在侦听到服务器的套接字连接。 在活动的onDestroy()方法中,我调用一个方法从套接字帮助器类中注销演示者 对于来自套接字的特定消息“TYPE X”,我启动一个新的活动B。通常会调用onDestroy()方法,并且套接字侦听器未注册 这是奇怪的部分。当收到同一类型“X”的消息时,将重新创建活动a,并重新启动活动B,再次重复整个循环 活动A: @Override protected

所以,我面临着一种奇怪的行为。我正在我的应用程序中实现MVP设计模式。 我有两项活动,A和B。 活动A的演示者正在侦听到服务器的套接字连接。 在活动的onDestroy()方法中,我调用一个方法从套接字帮助器类中注销演示者

对于来自套接字的特定消息“TYPE X”,我启动一个新的活动B。通常会调用onDestroy()方法,并且套接字侦听器未注册

这是奇怪的部分。当收到同一类型“X”的消息时,将重新创建活动a,并重新启动活动B,再次重复整个循环

活动A:

@Override
protected void onDestroy() {
    mainActivityPresenter.terminate();
    // some code
    super.onDestroy();
}
演讲者:

@Override
public void terminate() {
    socketHelper.unregisterListener(socketListener);
}
有人对这种行为有什么解释吗

编辑:添加了一些关于如何启动新活动的代码片段

@Override
public void showOrderActivity(int orderType) {
    Intent orderIntent = new Intent(MainActivity.this, OrderActivity.class);
    orderIntent.putExtra(Constants.BUNDLE_CONTENT_NAME, orderType);
//        orderIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
//        orderIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
//        orderIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//        finishAffinity();
//        orderIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(orderIntent);
    finish();
}

注释的代码是我用来确保活动A被销毁的测试。

可能没有调用
onDestroy()
。请注意,在正常情况下,启动活动B不会触发活动A上的
onDestroy()
。我已选中。调用onDestroy()。我编辑了我的问题并添加了一些细节。也许
unregisterListener()
没有做它应该做的事情。因此,经过反复检查,我发现了这种行为的原因。这完全是我对部分业务逻辑的误解。谢谢你的回复。