如何每天在Android中自动设置壁纸

时间:2018-12-31 06:16:15

标签: android

我正在开发一个显示来自服务器的不同照片的应用程序,用户可以将选择的照片设置为其设备的墙纸,我使用给定的代码来设置其工作墙纸,但我希望每天自动设置墙纸。我使用了这段代码。

Java

is

2 个答案:

答案 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;
    }
}