我有一个壁纸类 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吗?
答案 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()方法中,您重新绘制壁纸。