gpt4 book ai didi

Android 应用程序使用定时器定期更换墙纸

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:28:10 26 4
gpt4 key购买 nike

我想创建一个应用程序,它会以固定的时间间隔更改 Android 设备的墙纸,比如每隔一小时左右。目前在我的代码中,我启动了一个服务并使用了一个 Timer 对象。将定期调用 Timer 对象并更改墙纸。

这是我目前使用的代码。墙纸只会更改一次,之后不会更改。请让我知道我该怎么办?

public class Wallpaper extends Service {

Timer mytimer;
int interval=60000;
Drawable drawable;
WallpaperManager wpm;
int prev=1;

@Override
public void onCreate() {
super.onCreate();
mytimer=new Timer();
wpm=WallpaperManager.getInstance(Wallpaper.this);
}



@Override
public int onStartCommand(Intent intent, int flags, int startId) {
mytimer.schedule(new TimerTask() {
@Override
public void run() {

if(prev==1){
drawable = getResources().getDrawable(R.drawable.two);
prev=2;
}
else if(prev==2){
drawable = getResources().getDrawable(R.drawable.three);
prev=3;
}
else{
drawable = getResources().getDrawable(R.drawable.one);
prev=1;
}


Bitmap wallpaper=((BitmapDrawable)drawable).getBitmap();

try {
wpm.setBitmap(wallpaper);

} catch (IOException e) {
e.printStackTrace();
}

}
}, interval);

return super.onStartCommand(intent, flags, startId);
}

@Override
public IBinder onBind(Intent arg0) {
return null;
}
}

此外,我是否需要使用 AlarmManager 或 Handler 来实现此目的?我对 Android 很陌生,有点困惑。

最佳答案

看来您使用的计时器有误。如果你想让它重复发生,你需要指定一个初始延迟作为第二个参数,一个间隔作为第三个参数。 Timer.schedule(timertask, initial delay, interval between recurrences);

注意:我说的是您对 myTimer.schedule(object, interval);

的调用

关于Android 应用程序使用定时器定期更换墙纸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9732812/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com