是否总是在startActivity之前安排完成?

Ric*_*ow3 -3 android android-activity

startActivity(newActivity);
finish();
Run Code Online (Sandbox Code Playgroud)

假设我像上面那样称呼它。两个调用都计划在调用方法结束后在UI线程上发生。但是,调度中是否有特定顺序?是否总是在startActivity之前安排完成?或相反亦然?

Ami*_*pta 7

在活动上调用finish()时,将执行方法onDestroy(),该方法可以执行以下操作:

  1. 取消活动正在管理的所有对话框(搜索对话框)。
  2. 关闭活动正在管理的所有游标。然后将活动从堆栈中删除。

并调用startActivity(newActivity)创建一个新View并将其放在顶部。

因此,如果命令是

startActivity(newActivity);

完();

然后显示第一个newActivity并销毁旧的。

但是,如果命令是

完();

startActivity(newActivity);

然后,首先销毁现有活动,然后创建并显示新活动。

因此,如果我们在onDestroy()中有很多事情要做(例如存储一些数据),则调用startActivity()然后finish()将是一件好事,因此,顺序取决于我们首先调用的内容。