我正在开发一个显示来自服务器的不同照片的应用程序,用户可以将选择的照片设置为其设备的墙纸,我使用给定的代码来设置其工作墙纸,但我希望每天自动设置墙纸。我使用了这段代码。
Java
is
答案 0 :(得分:2)
1)首先,您需要计划每24小时调用一次的作业。参考link
2)现在使用以下方法设置墙纸
public void setWallpaper {
WallpaperManager myWallpaperManager =
WallpaperManager.getInstance(getApplicationContext());
try {
myWallpaperManager.setResource(R.drawable.wallpaper);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
答案 1 :(得分:0)
尝试一下
创建一个粘性服务,如下所示,然后我创建了一个TimerTask(Scheduler),它将在每24小时运行一次,您可以在其中添加用于设置墙纸的代码。不要忘记在Manifest中注册服务。从任何活动启动此服务。
You can refer the sticky service from here to know more
private Timer timer;
private TimerTask timerTask;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
startTimer();
return START_STICKY;
}
public void startTimer() {
timer = new Timer();
initializeTimerTask();
//schedule the timer, after the first **5000ms** the TimerTask will run in every **24hrs**
timer.schedule(timerTask, 5000, 86400000);
}
public void initializeTimerTask() {
timerTask = new TimerTask() {
public void run() {
//ToDo set wallapaper here
}
};
}
@Override
public void onDestroy() {
super.onDestroy();
if (timer != null) {
timer.cancel();
timer = null;
}
}