【问题标题】:WallpaperService#onCreateEngine reset or restartWallpaperService#onCreateEngine 重置或重新启动
【发布时间】:2013-12-09 14:33:04
【问题描述】:

我有一门壁纸课 壁纸服务#onCreateEngine( 在 init 中,我从 sharedprefs 中读取背景图像和颜色。

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

我开始预览

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

如果我设置壁纸我仍然看到旧值,那么预览中的一切都很好, 因为课程没有重新开始.. (如果我设置另一个 3 方壁纸并更改设置并开始我的一切正常)

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

【问题讨论】:

    标签: android class restart wallpaper


    【解决方案1】:

    我在我的引擎中注册了一个 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() 方法中重绘壁纸。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-22
      • 1970-01-01
      • 2018-05-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-12
      • 2020-11-06
      • 2016-09-23
      相关资源
      最近更新 更多