Я пытаюсь сделать живые обои на Android. У меня один класс
public class MyWallpaperService extends WallpaperService {
}
И еще класс:
public class SettingsActivity extends Activity {
}
Мне нужно, чтобы настройки настройки активности связывались с MyWallpaperService для установки значений на живых обоях. Я уже использовал aidl и пытался применить его в этой ситуации. Однако, похоже, что WallpaperService имеет следующий метод:
/**
* Implement to return the implementation of the internal accessibility
* service interface. Subclasses should not override.
*/
@Override
public final IBinder onBind(Intent intent) {
return new IWallpaperServiceWrapper(this);
}
Поэтому я не могу вернуть свой собственный определяемый вспомогательный метод связывания в методе onBind моего сервиса из-за окончательного объявления суперкласса, метода WallpaperService, метода onBind. Мне это кажется упущением со стороны команды разработчиков платформы Android. Эффективно ли это устраняет все возможные возможности межпроцессного взаимодействия с любых живых обоев?
Какие у меня есть варианты? Я знаю, что могу поместить Activity и Сервис в один и тот же процесс и задать глобальные переменные Activity для Сервиса, но похоже, что это может быстро запутаться, и я хочу сделать это правильно. Является ли добавление широковещательного приемника в Службу правильным шагом здесь?