Я хочу создать виджет Android, который будет обновляться очень часто (5 секунд).
Ик. Пожалуйста, позвольте этому быть настраиваемым пользователем.
Это означает, что я хочу обновлять его только при включенном экране и когда на главном экране активная активность.
Я бы не беспокоился о включении экрана - просто используйте не-1011 * будильник с AlarmManager
. Однако, «когда домашний экран активен», это будет грандиозный взлом, если он вообще сработает.
Могу ли я использовать в API-интерфейсе Android Intent.createChooser (цель Intent, заголовок CharSequence) и каким-то образом получить список, или мне нужно получить все действия, получить их Intents и использовать hasCategory (категория String) для каждого Intent.
Используйте queryIntentActivities()
для ACTION_MAIN
/ CATEGORY_HOME
Intent
.
Тогда вы столкнетесь с проблемой того, что эти действия являются просто точками входа на домашний экран и могут или не могут быть теми, которые фактически отображают сам домашний экран.
Тогда вы столкнетесь с проблемой определения, является ли это действие на экране. Я не знаю, возможно ли это. ActivityManager
, например, скажет вам, работает ли он (ответ: 100% времени), но я не вижу, где он считает, что одни находятся на экране, а другие нет.
Затем вы столкнетесь с проблемой, когда даже существующие API ActivityManager
не управляются событиями, что означает, что вам все равно нужно будет запустить код для опроса ActivityManager
, хотя вы можете сохраните несколько инструкций, пропустив работу, если вы каким-то образом определите, что домашний экран находится не на переднем плане.
Поэтому я возвращаюсь к «пожалуйста, позвольте пользователю настраивать его», поскольку вы просто просите о присвоении ему одной звездочки, особенно в зависимости от того, что вы собираетесь делать каждые 5 секунд.