在Android上设置壁纸刷新

时间:2018-02-01 20:03:43

标签: android wallpaper

我正在尝试更改当前的用户壁纸。 我已经设置了set_wallpaper权限,但它确实有效。 但是当我改变壁纸时,我必须等待大约15秒才能看到壁纸的变化。

这很奇怪,因为如果我检查锁定屏幕它已经改变了。

这是我的代码:

 public static void setWallpaper(final Context context, final Bitmap image){
        Thread thread = new Thread() {
            @Override
            public void run() {
                WallpaperManager wallpaperManager = WallpaperManager.getInstance(context.getApplicationContext());
                try {
                    if(image != null){
                        wallpaperManager.setBitmap(image);
                    }
                } catch (IOException ignored) {}
            }
        };

        thread.start();
}

我在Android 6上。 任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

为什么你为此目的使用了一个线程?

删除它并直接在MainThread上使用您的代码并查看您的代码是否正常工作并立即更改用户壁纸!

答案 1 :(得分:-1)

可能值得深入了解WallpaperManagers setBitmap方法和内部回调(ln 1055,ln 1713)ref

我不完全确定这整个代码是如何工作的,我认为这确实可以帮助你解决问题,但它可能会给你一个提示。

有关类似问题,请参阅此question