这是我第一次尝试在活动中创建动作,该动作应定期重复。 我的片段看起来像这样
private void setBackground(final ConstraintLayout mainActivityLayout) {
//Setting int[] for background images
final int[] ints = new int[]{
R.drawable.main_screen_background_1,
R.drawable.main_screen_background_2,
R.drawable.main_screen_background_3,
R.drawable.main_screen_background_4};
//Preparing runnable for periodic background change
Runnable runnable = new Runnable() {
@Override
public void run() {
for (int i = 0; i < ints.length; i++) {
mainActivityLayout.setBackgroundResource(ints[i]);
}
}
};
ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(5);
// This schedule a runnable task which change the background image every 10 seconds
scheduledExecutorService.scheduleAtFixedRate(runnable, 0, 10000, TimeUnit.MILLISECONDS);
}
整个想法是定期更改背景图像。我正在为这些图像准备int [],以便在Runnable中循环遍历它们。 然后,我使用ScheduledExecutorService,让图像每10秒更改一次。
但是它似乎不起作用。我在活动的onCreate部分中调用此方法。似乎runnable没有被调度,并且只完成了1次(不会重复)。
我的猜测是:
我知道这可能是微不足道的,但是我在这里真的很困惑。