onCreate从后台回来时调用

时间:2014-06-04 14:57:16

标签: android android-activity oncreate

Android文档说明了关于onCreate方法:

  

首次创建活动时调用。这是您应该执行所有常规静态设置的地方:创建视图,将数据绑定到列表等。此方法还为您提供包含活动的先前冻结状态的Bundle(如果有)。   始终紧跟onStart()。

但是我有一个奇怪的行为:

  • 我有一个活动A.当我启动我的应用程序时,会调用onCreate。这很正常。
  • 然后按主页按钮。调用onStop。这很正常。
  • 我回到我的应用程序,onCreate没有被调用。这很正常。
  • 我再次回家。
  • 我转到另一个应用程序(dropbox,gmail或其他)来访问一个带有与我的应用程序关联的扩展名的文件(我有一个带有pathPattern到此文件扩展名的intent-filter)
  • 我选择此文件将其打开到我的应用程序。调用onCreate虽然从未调用onDestroy。这是为什么 ?如果我在我的活动中设置一个布尔值来检查这是否是我第一次调用onCreate,这个布尔值会说真两次(第一次,第二次使用文件扩展名打开应用程序)。

我想我误解了onCreate的内容。但是医生并没有帮助我。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

很有可能它是您活动的不同实例。共享意图可能是在其他应用程序(例如Dropbox)堆栈上启动您的活动。使用两个单独的onCreate

运行活动类的两个实例

您可以通过按设备上的多任务按钮检查一下,看看您是否有两次应用程序屏幕截图预览:一个带有您自己的应用程序图标,另一个带有另一个应用程序(例如Dropbox)应用程序图标。

答案 1 :(得分:0)

这两个案例中的活动有不同的意图。 当从其他应用程序启动时,您实际上处于其他任务(后台堆栈), 活动的默认android:launchMode是每个任务的新实例。