Сброс или перезапуск WallpaperService#onCreateEngine

у меня есть один класс для обоев WallpaperService # onCreateEngine (и в инициализации я читаю фоновое изображение и цвет из общих префов.

Теперь, если я запускаю свое приложение, я устанавливаю выбираемый цвет фона и фон.

Я начинаю предварительный просмотр с

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

в предварительном просмотре все нормально, если я устанавливаю обои, я все еще вижу старые значения, потому что класс не перезапускается.

Может ли кто-нибудь дать мне подсказку hwoto?


person Hansjörg Hofer    schedule 09.12.2013    source источник


Ответы (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() вы перерисовываете свои обои.

person abbath    schedule 09.12.2013