Android-onCreate在每次发布时都会被调用

Android-onCreate在每次发布时都会被调用,android,android-activity,oncreate,Android,Android Activity,Oncreate,我有一个很难确定的问题 当我从marketplace安装我的应用程序时,有时会看到以下行为: 如预期的那样,从顶部的应用程序调用中导航 返回到应用程序时,会调用主活动的onCreate,而不是onRestart/onResume 每次用户离开/返回应用程序时,无论发生什么情况,onCreate都会不断被调用。显然,这在国家等方面造成了重大问题 有时重新启动手机可以解决此问题,有时则不能。安装from.adb可防止此行为 从behaving应用程序登录,点击图标(已运行时): 从混乱的应用程序登录

我有一个很难确定的问题

当我从marketplace安装我的应用程序时,有时会看到以下行为:

  • 如预期的那样,从顶部的应用程序调用中导航
  • 返回到应用程序时,会调用主活动的onCreate,而不是onRestart/onResume
  • 每次用户离开/返回应用程序时,无论发生什么情况,onCreate都会不断被调用。显然,这在国家等方面造成了重大问题

    有时重新启动手机可以解决此问题,有时则不能。安装from.adb可防止此行为

    从behaving应用程序登录,点击图标(已运行时):

    从混乱的应用程序登录:

    02-10 18:39:35.813: INFO/ActivityManager(1477): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.sidekickApp/.Main bnds=[360,586][477,704] } from pid 1583
    02-10 18:39:35.843: VERBOSE/HtcAppUsageStats(1477): (launch app, package): (Sidekick App, com.sidekickApp)
    02-10 18:39:35.873: DEBUG/Background traffic light(1583): traffic light: GREEN, mBackgroundTrafficLight = true
    02-10 18:39:35.903: VERBOSE/Main(7364): Debug: onCreate()
    

    我在这里绝望了。有什么想法吗?

    这实际上与市场无关。如果Android没有足够的资源将你的应用程序保存在内存中,那么它将从内存中删除,其进程将被终止,并且下次启动你的应用程序时将再次调用
    onCreate
    。可能发生的情况是,当您以这种方式安装时,市场正在吞噬您设备的所有内存,并导致所描述的行为

    如果正在调用onStop(),则无需继续。它仅在onPause之后调用。只有在为onRestart编写代码时,才会调用onRestart。参见

    我终于找到了答案,这是对这个问题的第一个回答:


    我认为这是无法预测的,也不能保证。若应用程序活动不在堆栈中,则将调用oncreate,否则将调用onResume。这是生命周期。这是我最初的想法,但看日志,应用程序在后台继续运行,一切正常。在我再次单击图标并调用onCreate之前,不会出现崩溃、onDestroy或任何奇怪的情况。嗯。。。真奇怪。您的应用程序是否按预期启动并正常工作?logcat可能会对这个问题有更多的了解(因为您所描述的内容显然与通常的应用程序生命周期背道而驰)是的,它启动并运行良好。唯一的问题似乎是当用户返回应用程序时重新创建主活动。嗯……当我点击“主页”按钮时,我的日志显示为暂停,然后是停止。当我点击应用程序图标时,我的日志显示onRestart,然后是onResume。这是应该的方式,onRestart()中的代码现在正在运行吗?是的,这是应该的方式。我的问题是,当点击图标触发onCreate而不是onRestart时,应用程序可能会进入一种状态。没有其他东西会占用手机内存,应用程序在后台运行良好。有道理?
    02-10 18:39:35.813: INFO/ActivityManager(1477): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.sidekickApp/.Main bnds=[360,586][477,704] } from pid 1583
    02-10 18:39:35.843: VERBOSE/HtcAppUsageStats(1477): (launch app, package): (Sidekick App, com.sidekickApp)
    02-10 18:39:35.873: DEBUG/Background traffic light(1583): traffic light: GREEN, mBackgroundTrafficLight = true
    02-10 18:39:35.903: VERBOSE/Main(7364): Debug: onCreate()