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

Android:是否一定要在finish()之后调用onPause()?

商焕
2023-03-14
问题内容

在任何地方都找不到可靠的答案。我有一个方法,其中调用finish(),然后再调用onPause()。

是否一定要在调用finish()之后调用onPause()?


问题答案:

Android将一般称之为onPause()如果你打电话finish()你活动的整个生命周期期间的某个点,除非你叫finish()你的onCreate()

public class MainActivity extends ActionBarActivity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    finish();
  }



  @Override
  protected void onPause() {
    super.onPause();
    Log.d(TAG, "onPause");
  }

  @Override
  protected void onStop() {
    super.onStop();
    Log.d(TAG, "onStop");
  }

  @Override
  protected void onDestroy() {
    super.onDestroy();
    Log.d(TAG, "onDestroy");
  }
}

运行,并观察您的日志将只包含“ onDestroy”。finish()几乎在其他任何地方调用,您都会看到onPause()被调用。



 类似资料:
  • 我试图编写一个DAO类并使用该类中的EntityManager来执行持久操作。我的数据库在我的persistence.xml中定义为jta-data-source,并相应地在我的Web应用程序服务器中注册为数据源。 因此,在我的DAO中使用EntityManager的em.persist()方法时遇到了一个问题,因为我需要一个事务。显然,它必须是一种称为UserTransaction的特殊类型的事

  • 问题内容: 我目前正在编写一些Android单元测试,虽然我已经按照自己想要的方式完成了大多数工作,但有一件事让我有些困惑。 我的测试活动中包含以下代码: 我试图弄清楚如何使用Instrumentation(或其他工具)来读取活动的结果,或者在活动完成后获得意图。有人可以帮忙吗? 问题答案: 您可以使用反射并直接从活动中获取值。

  • Win32程序通常有一个消息循环,循环调用GetMessage或PeekMessage,然后调用DispatchMessage将消息分派到相关窗口的窗口进程。 但是,真的有必要这样做吗?我是否可以直接在消息循环中查看 MSG 对象,并在其中执行所需的操作,而无需调用 DispatchMessage?我说的是我有一个窗口没有其他窗口控件的情况,例如,如果该窗口仅用作direct3d显示窗口,则消息将

  • 我不知道下面的代码有什么问题。我还检查了两次关于注册接收器的问题。但事实并非如此。或者可能是我错过了什么。能帮帮忙吗?我真的很需要它。:( 以下是我调用它的活动 清单

  • 问题是下面的代码片段没有删除数据库中的记录。 然而,如果我打电话给session。flush()删除后,它可以完美地工作。请注意,我没有使用任何交易。 在Session类的JavaDoc中,delete方法的描述如下: 从数据存储中删除持久实例。参数可以是与接收会话相关联的实例,也可以是具有与现有持久状态相关联的标识符的瞬态实例。 我在网上看到了很多代码片段,它们表明在delete()之后不需要调

  • 问题内容: 我父母的渲染中有以下代码 以及下面我孩子图表中的代码 我以为仅在所有子项都加载后才调用父级的componentDidMount。但是在这里,父级的componentDidMount在子级的componentDidMount之前被调用。 这是工作方式吗?还是我做错了什么。 如果这是工作方式,我如何检测从父级加载所有子级组件的时间? 问题答案: 是的,孩子的称为父母之前的。 运行下面的代码