当我尝试执行以下代码时:
public class A_activity extends activity {
.........
Intent B = new Intent(this, B_activity.class);
startActivity(B);// B_activity is a progress animation
......
sendBroadcast();// use to finish B_activity
Intent C = new Intent(this, C_activity.class);
startActivity(C);// C_activity is which should be start after B_activity
.........
}
它直接跳转到C_activity,但没有B_activity。完成C_activity后,B_activity启动。这对我来说很困惑,当我跳入C_activity时,如何清除B_activity,或者确保B_activity在C_activity之前开始?
出于某种原因,我必须在A_activity中启动它们,startActivity(B)和startActivity(C)的时间不稳定,可能非常短,如100ms。
答案 0 :(得分:0)
你不是。当您调用start活动时,它会立即启动。活动B将需要启动活动C,或者您可以在活动B使用startActivityForResult和onActvityResult完成后启动活动C.
答案 1 :(得分:0)
使用活动来显示进度指示器是一个可怕的想法。您应该考虑使用AlertDialog而不是它。
与在单个线程中运行的javascript不同,当你说startActivity(B)
时,Android只是告诉ActivityManager
启动一个Activity,但它不会阻塞主线程并继续执行以下命令代码,在您的情况下为startActivity(C)
。
如果您坚持使用B_activity
作为进度指示器,则应在onActivityResult
中实施A_activity
,并在startActivity(C)
完成后致电B_Activity
。