我创建了一个非常简单的Android应用程序,只需一个按钮名称就可以生成'。活动处理onclick事件。
public void autoGenerate(View view) throws InterruptedException {
Log.v("Hello", "I'm Duy");
final int count = 10000;
for (int i = 0; i < count; i++) {
Log.v("Count", String.valueOf(i));
Thread.sleep(1000);
}
}
我已将日志添加到onPause和onStop。
@Override
protected void onPause() {
Log.v("Life Cycle", "onPause ...");
super.onPause();
}
@Override
protected void onStop() {
Log.v("Life Cycle", "onStop ...");
super.onStop();
}
我单击Generate按钮,此应用程序在LogCat中打印计数器值。然后我点击手机上的主页按钮,在循环完成后没有回调。我完全不理解这种情况,因为我认为当应用程序消失时,系统应该调用onPause和onStop上的回调。
任何人都可以帮助我吗?我只是一个开始阅读android电子书的初学者。
答案 0 :(得分:1)
进入循环后,应用程序将不会退出,直到循环结束。而不是直接使用循环,启动一个新线程来执行循环。即使您关闭应用程序,循环也将在后台运行。
答案 1 :(得分:1)
UI点击事件是从应用程序的主线程处理的。 你的for循环阻塞了主线程,因此onPause生命周期调用被延迟了。