WallpaperService#onCreateEngine重置或重启

时间:2013-12-09 14:33:05

标签: android class restart wallpaper

我有一个壁纸类 WallpaperService#onCreateEngine( 在init中我从sharedprefs中读取backgroundimage和color。

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

我用

开始预览
    Intent intent = new Intent(
            WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER);
    intent.putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT,
            new ComponentName(this, CustomWallpaper.class));
    startActivity(intent);
如果我设置了壁纸,我仍然会看到旧的值,预览中的一切都很好, 导致该类未重新启动.. (如果我设置另一个3方壁纸并更改设置并开始我的一切正常)

有人能给我一个提示hwoto吗?

1 个答案:

答案 0 :(得分:2)

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

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

然后,当您更改变量/ drawable时,请在实际上下文中调用它:

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

在draw()方法中,您重新绘制壁纸。