【发布时间】:2015-12-31 04:02:29
【问题描述】:
我创建了一个非常简单的 android 应用程序,其中一个按钮名称是“生成”。 Activity 处理 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();
}
我点击生成按钮,这个应用程序打印 LogCat 中的计数器值。然后我点击手机上的主页按钮,在循环完成之前没有发生回调。我完全不明白这种情况,因为我认为当应用程序消失时,系统应该调用回调 onPause 和 onStop。
谁能帮帮我?我只是一个开始阅读android电子书的初学者。
【问题讨论】:
-
你几乎不应该在主线程上调用
Thread.sleep();。曾经。正如您现在已经注意到的那样,它会中断 Activity 的生命周期方法。 -
我怀疑没有回调 (Thread.sleep(1000);) 使线程休眠 1 秒 X 10000 = 2.778 小时