Tôi muốn tạo một ứng dụng, điều này sẽ thay đổi hình nền của thiết bị Android theo khoảng thời gian cố định. Hiện tại trong mã của tôi, tôi bắt đầu một dịch vụ và đang sử dụng một đối tượng Timer. Đối tượng Timer sẽ được gọi vào khoảng thời gian đều đặn và thay đổi hình nền.Ứng dụng Android để thay đổi hình nền theo các khoảng thời gian đều đặn bằng cách sử dụng Timer
Đây là mã tôi đang sử dụng hiện tại. Các hình nền được thay đổi chỉ một lần và không sau đó. Vui lòng cho tôi biết tôi nên làm gì?
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;
}
}
Ngoài ra, tôi có cần sử dụng Trình quản lý cảnh báo hoặc Trình xử lý để đạt được điều này không? Tôi khá mới với Android và hơi bối rối.
Đặt 0 cho sự chậm trễ để bắt đầu ngay lập tức. :) – Calvin
Cảm ơn..này dường như đang hoạt động .. Có một số phương thức myTimer.schedule() khác chỉ với hai đối số, vì vậy điều đó không gây ra lỗi cho tôi. Dù sao, tôi hạnh phúc vì tôi không phải sử dụng Handler, v.v. – ambit
Yup! Chỉ sử dụng hai đối số tạo một bộ hẹn giờ một lần. Đôi khi hữu ích! –