我有一个壁纸类WallpaperService#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);
如果我设置墙纸,在预览中一切正常,我仍然看到旧值,因为类(class)没有重新启动..(如果我设置另一个 3 方壁纸并更改设置并启动我的一切都可以)
有人可以给我提示 hwoto 吗?
我已经在我的引擎中注册了一个 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() 方法中重新绘制墙纸。
Tôi là một lập trình viên xuất sắc, rất giỏi!