为什么每次启动新活动时都会调用onCreate()?

时间:2017-07-29 04:35:36

标签: java android

我正在开发一个只显示引号的相当简单的应用程序。

所有源代码都可以在这里查看:
https://github.com/Ashanmaril/Quotr

我在onCreate()中有一些设置代码,我假设它只会被调用一次,但看起来并非如此。我遇到了一些错误,原因是每次启动新活动时,我的主要活动onCreate()函数都会重新运行。

我已经用Google搜索过,人们声称onCreate()应该只在应用程序的生命周期中调用一次,但是我已经在onCreate中添加了一个Log.v并且可以清楚地看到它每次从它启动一个活动时都会运行,这没有任何意义。我尝试将launchMode设置为singleTop,我的一个活动以finish()结束,但这并没有什么区别。

2 个答案:

答案 0 :(得分:0)

检查你的

  

的onDestroy()

检查它是否被称为

因为除非o

,否则永远不会调用create
  

nDestroy()

被称为

答案 1 :(得分:-1)

好吧,我终于解决了。我想我是一个完全白痴,但是当我一年半前开始使用这个应用程序时,我真的不知道我在做什么,因为它是我的第一个应用程序。

由于某些原因,当我实现第一个新活动时,我使它扩展了主要活动,而不是AppCompatActivity。所以我在新活动中对super.onCreate()和super.onDestroy()的调用是调用它的超级类,这是主要的活动。这很有道理我现在遇到这个问题的原因。

你可以在这个未被注意的错误中远远地进入开发阶段,所以也许其他人将来会犯这个错误并得到这篇文章的帮助。