【问题标题】:Do I need to call through super class onCreate and onDestroy methods within an IntentService?我是否需要通过 IntentService 中的超类 onCreate 和 onDestroy 方法调用?
【发布时间】:2012-09-06 03:44:59
【问题描述】:

我从IntentService 派生了一个类,我想知道在我的实现中重写这些方法时是否有必要通过超类onCreateonDestroy 调用方法,因为当您重写这些方法时会发生这种情况Activity.. 中的方法。如果有必要,这些调用是否需要成为我们在覆盖方法中做的第一件事?在Activity 文档中,他们对此非常清楚,而在ServiceIntentService 文档中我找不到任何具体内容。

【问题讨论】:

  • 试试吧——如果你不调用 super.onCreate()...,Activity 会抛出异常,所以如果这里有必要,我希望 IntentService 也一样。跨度>

标签: android android-service intentservice


【解决方案1】:

我想知道在我的实现中重写这些方法时是否有必要通过超类 onCreate 和 onDestroy 方法调用,因为在 Activity 中重写这些方法时会发生这种情况。

当然。这些方法在IntentService 上实现;如果你没有打电话给他们,你的服务根本就无法工作。

如果有必要,这些调用是否需要成为我们在覆盖方法中做的第一件事?

我建议您在实现onCreate() 时首先调用super.onCreate(),在实现onDestroy() 时最后调用super.onDestroy()

【讨论】:

  • 我的想法与您建议的在覆盖方法开头调用 onCreate() 和在覆盖方法结束时调用 onDestroy() 的想法相同。我的疑问与 Activity 文档有关,他们建议在覆盖方法的开头通过onCreate()onPause()onDestroy() 等的超类方法调用,所以我想知道服务是否也一样......这让我很奇怪通过在我自己的ActivityonDestroy() 方法的开头调用onDestroy() 来遵守文档指令的活动.. 你不这么认为吗?
  • @GianniCostanzi:“他们建议在覆盖方法的开头通过 onCreate()、onPause()、onDestroy() 等的超类方法调用”——我没有看到任何这样的Activity 文档中的说明。
  • Implementing the lifecycle callbacks部分代码sn-p后面的注释:注意:你的这些生命周期方法的实现必须总是在做任何工作之前调用超类实现,如上面的例子。
  • @GianniCostanzi:欢迎他们发表意见。我以前也是这样做的。我被大吼大叫,并在我的回答中转向了这种方法。 :-)
  • 您回答中的方法对我来说似乎更合理,因为在清理您自己的子类中的东西之前在超类上调用destroy() 似乎在离开地板之前破坏了您正在行走的地板带走自己的东西:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-30
  • 1970-01-01
相关资源
最近更新 更多