当前位置: 首页 > 面试题库 >

覆盖了功能的Android Activity必须调用super。*

金旺
2023-03-14
问题内容

创建自己的Activity子类时,我们将覆盖一些基本的Activity生命周期功能。

我们 必须 在其中哪些方法中称为超级实现, 应该 在哪里以及 只有什么好方法

// base lifecycle
onCreate(Bundle savedInstanceState);
onStart();
onRestart();
onResume();
onPause();
onStop();
onDestroy();
finalize();
onUserLeaveHint();
// instance state
onSaveInstanceState(Bundle outState);
onRestoreInstanceState(Bundle savedInstanceState)
// others
onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo);
onCreateOptionsMenu(Menu menu);
onOptionsItemSelected(MenuItem item);
onContextItemSelected(MenuItem item);
onMenuItemSelected(int featureId, MenuItem item);
onActivityResult(int requestCode, int resultCode, Intent data);
onBackPressed();

方法列表不是最终的,请随时添加更多功能,在哪里应该知道该怎么做。


问题答案:

必须:

  • onCreate(Bundle savedInstanceState);
  • onStart();
  • onRestart();
  • onResume();
  • onPause();
  • onStop();
  • onDestroy();
  • onPostCreate(Bundle savedInstanceState);
  • onPostResume();

应该/不应该:( 调用超类方法可能会有所帮助,除非您自己管理活动的状态或故意更改活动的行为-在这种情况下可能是有害的)

  • onSaveInstanceState(Bundle savedInstanceState);
  • onRestoreInstanceState(Bundle savedInstanceState);
  • onBackPressed();
  • onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo);
  • onCreateOptionsMenu(Menu menu);
  • onOptionsItemSelected(MenuItem item);
  • onContextItemSelected(MenuItem item);
  • onMenuItemSelected(int featureId, MenuItem item);

实际上,重写任何方法时,最好查看重写的类的源代码,并确切地了解此方法的作用。



 类似资料:
  • 问题内容: 我正在尝试在JBoss 5.1.0的WAR应用程序中部署一些Web服务。 我已经使用JAX-WS工具从现有的wsdl中创建了源文件。这创建了服务文件和带注释的@XmlType的小包,它们将充当请求和响应包装器。 此类在JBoss 4.2.3上运行良好,但是当移至JBoss 5.1.0时,出现此异常。 java.lang.UnsupportedOperationException:set

  • 问题内容: 是否有一种标准方法可以在Swift中制作“纯虚函数”,即。一个 必须 由每个子类中被覆盖,并且,如果不是的话,将导致编译时错误? 问题答案: 您有两种选择: 将超类定义为协议而不是类 Pro :编译时检查每个“子类”(不是实际的子类)是否实现了所需的方法 缺点 :“超类”(协议)无法实现方法或属性 2.声明该方法的超级版本 例: Pro :可以在超类中实现方法和属性 缺点 :不检查编译

  • 问题内容: 我知道python函数默认是虚拟的。假设我有这个: 我不希望他们能够这样做: 有没有办法防止用户重载roo()? 问题答案: 您可以使用元类: 每当创建子类时,就会调用该元类型的 new 。如果您在场,这将导致错误。仅当没有基类时,它才会接受roo的定义。 您可以通过使用注释来声明哪些方法是最终方法,从而使该方法更加理想。然后,您需要检查所有基准并计算所有最终方法,以查看是否有任何基准

  • 我正在开发一个模式锁定应用程序。 问题是,当手机屏幕关闭时,我的锁定活动显示为解锁,但当我按下移动主页键时,它就工作了。 在进入解锁模式之前,我想覆盖home key功能(因为它不工作)。 我谷歌了一下,但没有得到任何解决方案。 请帮帮我。

  • 问题内容: 在我正在从事的项目中,我们有通过Selenium编写的功能测试。该应用程序随每个功能发行版进行功能更改。 有没有一种工具/机制可以跟踪自动化功能测试中的差距,以便至少手动测试人员可以关注这些领域? 注意:我们并未执行FTDD,因此即使我们确保较高的单元测试覆盖率,功能测试覆盖率也可能会很差。我们使用NCover检查单元测试范围。 问题答案: 据我所知,至少有两个(商业但便宜)的工具可让

  • 问题内容: 如果我上课: 我最初以为我可以通过添加扩展名来覆盖子类而无需子类化: 该代码不会编译,但错误说明了该函数,这很有意义。 我的问题是: 是否仍要重写特定类的功能?换句话说,在某些情况下,例如上面的示例中,我可以替换功能吗?如果没有,是否有其他解决方法或方法来实现该行为(可能声明了另一个协议,idk) 现在,我考虑得更多了,我不得不说这是不可能的,因为是什么阻止某人重写任何标准库函数? 问