startActivity(newActivity);
finish();
假设我像上面一样调用它。两个调用都安排在调用方法结束后在UI线程上进行。但是,调度中是否有特定的顺序?是否始终在startActivity之前安排完成?反之亦然?
答案 0 :(得分:6)
在活动上调用finish()时,执行onDestroy()方法,此方法可以执行以下操作:
调用startActivity(newActivity)会在Top上创建并放置一个新的View。
因此,如果订单是
startActivity(newActivity);
结束();
然后显示第一个newActivity,旧的一个被销毁。
但是,如果订单是
结束();
startActivity(newActivity);
然后首先销毁现有活动,并创建并显示新活动。
所以,如果我们在onDestroy()中有很多事情要做(比如存储一些数据),那么调用startActivity()然后就完成()将是一件好事。因此,顺序取决于我们先调用的内容
答案 1 :(得分:1)
两种情况都应该起作用。
答案 2 :(得分:1)
答案 3 :(得分:0)
无论是在开始活动()之前还是之后写完成()
,它都适用答案 4 :(得分:0)
所以基本上调度的顺序取决于调用的顺序。如果先调用finish(),它将被添加到队列中,然后是startActivity()。反过来也是如此。根据您的实施方式,如果您在计划中需要特定订单,只需按照您希望进行计划的顺序调用函数。