android - WallpaperService#onCreateEngine 重置或重新启动

标签 android class restart wallpaper

我有一堂壁纸课 壁纸服务#onCreateEngine( 在 init 中,我从共享首选项中读取背景图像和颜色。

现在,如果我启动我的应用程序,我会设置可选择的背景颜色和背景。

我开始预览

    Intent intent = new Intent(
            WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER);
    intent.putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT,
            new ComponentName(this, CustomWallpaper.class));
    startActivity(intent);

在预览中一切都很好,如果我设置壁纸,我仍然会看到旧值, 因为类(class)没有重新开始.. (如果我设置另一个 3 方壁纸并更改设置并开始我的,一切都可以)

有人可以给我一个提示吗?

最佳答案

我已经在我的引擎中注册了一个 BroadcastReceiver:

IntentFilter filter = new IntentFilter("com.your.package.REFRESH");
receiver = new BroadcastReceiver() {
             @Override
             public void onReceive(Context context, Intent intent) {
                    draw();
              }
 };
 registerReceiver(receiver, filter);

然后,当您更改变量/可绘制对象时,在实际上下文中调用此方法:

context.sendBroadcast(new Intent("com.your.package.REFRESH"));

在draw()方法中你重画你的壁纸。

关于android - WallpaperService#onCreateEngine 重置或重新启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20473153/

相关文章:

android - 处理Adapter/ViewHolder中的点击事件

android - 使用折叠工具栏布局实现 RecyclerView

c# - 如果 else 为真,我怎样才能使程序循环回到开始? C#

android - 如何在不重新启动的情况下自动将保存的文件添加到目录 - Android应用程序

java - 处理水平滚动

android - 约束布局在底部有额外的空间

当我处理不同的类时,Java 对象/类型总是给我错误

java - 在其他计算机上找不到主类错误

c++ - 构造对象两次

android - AltBeacon 应用程序在几分钟后重新启动