我想創建一個應用程序,它會以固定的時間間隔更改Android設備的壁紙,每隔一小時左右說一次。目前在我的代碼中,我啓動了一個服務並使用了一個Timer對象。 Timer對象會定期調用並更改壁紙。Android應用程序定期更換壁紙使用定時器
這是我目前使用的代碼。壁紙只能更改一次,而不是之後。請讓我知道我該怎麼辦?
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很陌生,有點困惑。
設置0爲延遲立即開始。 :) – Calvin 2012-03-16 06:27:05
Thanks..this似乎現在正在工作..還有一些其他myTimer.schedule()方法只有兩個參數,所以這並沒有給我一個錯誤。無論如何,我很高興我不必使用Handler等。 – ambit 2012-03-16 06:50:53
是!只使用兩個參數可以生成一次性定時器。有時很有用! – 2012-03-16 07:36:24