3

У меня есть код в приложении, которое я хочу запустить, когда ориентация телефона меняется на главном экране, то есть, когда клавиатура выходит из строя. У меня есть изображение, которое я хочу изменить в представлении изображения в своем приложении. Я не могу использовать разные макеты, связанные с ориентацией (т. Е. «Макет» и «макет-земля»), потому что я не знаю названия файла изображения до времени исполнения, он создается во время выполнения. Нужно ли вообще запускать код для запуска, только если отображается главный экран, мой appwidget активен и ориентация только что изменилась?appWidget Ориентационный код

Я мог бы слушать широковещательную передачу конфигурации, но это будет запускаться каждый раз, когда телефон переключается на пейзаж или портрет, и я хочу, чтобы это произошло, когда отображается рабочий стол. Я не могу придумать какой-либо хороший способ в андроиде сделать это. Благодаря

Райан

+0

Есть ли вообще знать, находится ли рабочий стол в верхней части стека активности? или узнать, что есть? – rgrandy

+0

Теоретически да, см. Http://stackoverflow.com/questions/6285410/android-detect-if-an-activity-is-on-the-top-of-the-history-stack, но главный экран - это которая, вероятно, будет отличаться в зависимости от используемого устройства. –

ответ

3

Существует не хороший способ сделать это для изображений, полученных во время выполнения.

Один из подходов состоит в том, чтобы создать обе версии изображения и иметь два изображения, которые видны в зависимости от используемого макета/макета. (Таким образом, RemoteViews обновил оба ImageViews, но только правильный был бы виден.)

0

Jeff, в чем причина этого ограничения? Я хотел бы иметь возможность использовать изображения, сгенерированные во время выполнения, или создавать RemoteView в среде исполнения, а не использовать предварительно скомпилированный XML - это так негибко.

0

Существует более подробная информация на http://groups.google.com/group/android-developers/browse_thread/thread/0eb7c016be05e0b9/d31b312e2fa8530d

основном обновить виджет из onConfigurationChanged() в деятельности и добавить андроид: configChanges = «ориентации» для этой деятельности в манифесте. Плохо, это не распространяется на все варианты использования.

+0

Вы можете использовать Службу вместо Activity для этого. Это наверняка будет охватывать больше случаев использования, но есть еще случай, когда есть приложение AppWidget, и приложение закрывается. –

 Смежные вопросы

  • Нет связанных вопросов^_^