【发布时间】:2023-03-15 14:14:01
【问题描述】:
谁能解释如果我执行此活动会发生什么? 我得到奇怪的输出并且应用程序挂起。
public class ComedyAct extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new ProgressBar(this));
startActivity(new Intent(this,secondact.class));
Log.d("main","I am after start second act");
int i=0;
while(i<10000);
}
@Override
protected void onStart() {
super.onStart();
int i=0;
while(i<10000);
Log.d("main","I am in start first act");
}
@Override
protected void onStop() {
super.onStop();
int i=0;
while(i<10000);
Log.d("main","I am in stop first act");
}
}
【问题讨论】:
-
为什么不在 onCreate 中的
while(i<10000);放置一个调试点并使用调试器找出发生了什么 -
@Raghunandan 我更感兴趣的是如果我编写这样的代码而不是仅仅输出会发生什么以及为什么会发生。
-
如果您使用调试器的助手进行调试,您应该弄清楚这一点
-
我可以,但基于此,我不能假设 android 系统如何根据输出处理活动。我需要一些关于..当我在活动的 oncreate 中启动活动时会发生什么,在先前活动的 oncreate 之后的 statemets 呢?如果它们可以执行(是),则意味着有两个线程(UI)呈现应用程序的 UI 或主要操作(一个在屏幕上绘制新动作,另一个在执行前一个动作)。怎么会这样?据我所知,只有一个 mainUIThread。
-
是的。您只有一个线程,即 ui 线程。除了使用调试器,您将自己弄清楚执行流程是什么
标签: android android-activity android-lifecycle activity-lifecycle