Итак, у меня есть активность в моем приложении, которая в настоящее время помечена как
android:launchMode="singleTop"
... и в настоящее время у меня есть логика как в onCreate, так и в onNewIntent, чтобы убедиться, что на экране всегда отображаются данные, доставленные самым новым запущенным Intent. И я хотел бы иметь возможность переключаться между Holo.Light и Holo.Dark на основе данных, предоставленных этим намерением.
Вызов setTheme не работает (см. эти две ссылки):
- Почему getApplicationContext().setTheme() в действии не работает ?
- http://code.google.com/p/android/issues/detail?id=4394
Эта вторая ссылка имеет обходной путь, который включает создание второй записи AndroidManifest.xml с другой темой и указанием на пустой подкласс рассматриваемого действия. Это работает, но нарушает singleTop (поскольку теперь в стеке может быть два экземпляра действия).
У меня нет идей. Кто-нибудь знает, есть ли какой-либо способ сделать это, кроме создания моего собственного пользовательского представления ActionBar для этого действия?