【发布时间】:2022-01-13 15:24:41
【问题描述】:
我的 MainActivity.java 中有一个循环:
public class MainActivity <...> {
Handler handler = new Handler();
Runnable runnable;
int delay = 15000;
}
@Override
public void onResume() {
//super.onResume();
handler.postDelayed(runnable = new Runnable() {
public void run() {
handler.postDelayed(runnable, delay);
Log.d("myTag", "This is my message");
}
}, delay);
super.onResume();
}
如前所述,一开始,动作每 15 秒运行一次(不准确,有时是 13 秒,有时是 16 秒,等等,但随着它继续运行)在某个时刻开始每秒运行一次:
最后条目的Logcat:
2021-12-08 18:06:35.329 25533-25533/com.app.xxxx D/myTag: This is my message
2021-12-08 18:06:38.135 25533-25533/com.app.xxxx D/myTag: This is my message
2021-12-08 18:06:39.318 25533-25533/com.app.xxxx D/myTag: This is my message
2021-12-08 18:06:39.667 25533-25533/com.app.xxxx D/myTag: This is my message
2021-12-08 18:06:48.967 25533-25533/com.app.xxxx D/myTag: This is my message
2021-12-08 18:06:50.330 25533-25533/com.app.xxxx D/myTag: This is my message
2021-12-08 18:06:53.138 25533-25533/com.app.xxxx D/myTag: This is my message
2021-12-08 18:06:54.320 25533-25533/com.app.xxxx D/myTag: This is my message
2021-12-08 18:06:54.669 25533-25533/com.app.xxxx D/myTag: This is my message
2021-12-08 18:07:03.968 25533-25533/com.app.xxxx D/myTag: This is my message
2021-12-08 18:07:05.332 25533-25533/com.app.xxxx D/myTag: This is my message
2021-12-08 18:07:08.140 25533-25533/com.app.xxxx D/myTag: This is my message
有什么想法吗?为什么会这样?
【问题讨论】:
-
onResume()可能会被多次调用,一旦你有 15 个运行,你就会得到大约每秒一次的命中。 -
嗨@JayC667,是的,我又找到了一个 onResume();这就是导致问题的原因。您能否添加您的评论作为标记它的答案?谢谢。
-
大卫的回答更好,更详细。简单地用分数打他;-)
标签: java android android-studio android-activity