Android 实时壁纸中的周期性动作
我正在努力确保在我的实时壁纸中使用最有效/最合适的代码。目前,如果我有任何周期性的动作,我只需要使用Runnables来重复动作,然后在动作完成后延迟它所需要的时间 只有一个Runnable(例如一个drawFrame Runnable)更好,并且只为任何其他周期性动作使用它吗 例如:Android 实时壁纸中的周期性动作,android,live-wallpaper,Android,Live Wallpaper,我正在努力确保在我的实时壁纸中使用最有效/最合适的代码。目前,如果我有任何周期性的动作,我只需要使用Runnables来重复动作,然后在动作完成后延迟它所需要的时间 只有一个Runnable(例如一个drawFrame Runnable)更好,并且只为任何其他周期性动作使用它吗 例如: int interval1 = 0; int interval2 = 0; drawFrame(){ interval1++; interval2++; if (interval1==repeatIn
int interval1 = 0;
int interval2 = 0;
drawFrame(){
interval1++;
interval2++;
if (interval1==repeatInt1){
interval1 = 0;
// Periodic action 1
}
if (interval2==repeatInt2){
interval2 = 0;
// Periodic action 2
}
// Regular drawFrame code here
}
我认为上述方法使用的资源比运行3个Runnable要少,对吗
为了澄清,我有多个操作(2个或更多)需要定期执行,但不一定都在同一个延迟时间执行。是否最好创建一个延迟最短的runnable,然后将其作为中心线程,在X个循环之后执行其他操作?为什么不使用时间函数对间隔进行建模?如果您有两个操作,并且希望使用定义的期间在这两个操作之间切换
double period = 1000;
double time = (double) System.currentTimeMillis();
if ( Math.sine( 2*Math.PI * time / period) > 0)
//State 1: do one thing
else
//State 2: do the other
有很多简单的方法可以改变数学,让你可以控制状态的数量,在状态之间切换的顺序,以及在每个状态中每个周期所占的比例。我不是真的想弄清楚如何在动作之间切换,只是我可能有3个动作都在重复,但间隔不同。我是否应该创建一个最短间隔(drawFrame)的runnable,然后将其用作其他两个的计时器?