【问题标题】:When I launch an activity from main, onCreate() of main is called, and when the launched activity is finished onDestroy() is called当我从 main 启动 Activity 时,会调用 main 的 onCreate(),当启动的 Activity 完成时会调用 onDestroy()
【发布时间】:2017-08-03 01:51:36
【问题描述】:

这就是我启动活动的方式:

Intent intent = new Intent(Quotr.this, AddQuote.class);
startActivityForResult(intent, ADD_QUOTE_REQUEST);

该活动以调用 finish() 结束

但是我的onCreate()onDestroy() 方法在我不希望它们被调用的主要活动(在Quotr.class 中定义)中被调用时遇到了问题。我在这两种方法中都添加了对 Log.v() 的调用,以查看调用了什么以及何时调用,奇怪的是,当活动启动时,主活动的 onCreate() 被调用,以及新活动何时完成,主要活动的 onDestroy() 方法被调用。

这导致了很多问题,我什至不知道此时如何解决它,因为我在主要活动的 onDestroy 中的所有清理工作(我只希望在实际重新创建活动时运行,并非每次启动此新活动时都会在活动仍在使用时调用。

奇怪的是,这只发生在这个特定的活动中。据我所知,我正在以完全相同的方式调用和完成所有其他活动意图,但它们不会像 AddQuote.class 那样混淆主要活动的生命周期。

我现在真的不知道还能检查什么。我检查了清单中的任何错误,我检查了我了解活动生命周期,但这真的没有意义。

【问题讨论】:

    标签: android


    【解决方案1】:

    天哪,我真是个大白痴。

    我正在开发一个在一年半的时间里慢慢建立起来的应用程序,这是我第一次尝试应用程序。出于某种原因,对于我在应用程序中创建的第一个新活动(我遇到问题的那个),我扩展了主要活动而不是 AppCompat 活动。所以我对 super.onCreate() 和 super.onDestroy() 的调用正在回调主要活动,因为那是超类。

    无论如何,如果有人也犯了这个错误,我还是会保留这个。希望它可以帮助某人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-17
      • 1970-01-01
      • 2018-02-09
      • 2023-03-14
      相关资源
      最近更新 更多