Когда необходимо использовать singleTop launchMode в виджете андроида или приложении?

Я просто был записан виджетом. Я видел причину проблемы, но я не мог определить почему или ее решение. Мой виджет выпускал поиск (SearchManager), и действие запустило поисковое диалоговое окно, но когда назад названный к моему виджету, это создало другую ссылку на виджет (т.е. идентификатор потока был тем же, но идентификатором виджета, измененным от 65 до 0).

Это привело меня полагать, что новый экземпляр становился созданным, и я искал документацию настройки, которые будут относиться к проблеме. В конечном счете я наткнулся на android:launchMode="singleTop" и как только я установил его в AndroidManifest, альте! Мой виджет работал.

Это взяло меня лучшая часть двух дней для отладки.

Есть ли какие-либо другие ситуации или есть ли более технически корректное решение моей проблемы?

25
задан helloPiers 18 November 2012 в 15:14
поделиться

1 ответ

Я больше читал в Android Docs - я мог бы потратить всю жизнь, читая их документы, и найти новую тонкую деталь, которая ломает мне мозг :) Это объясняет мои множественные экземпляры, которых я не ожидал, однако я настроил, чтобы они происходили .

Документ Android об определении активности для AndroidManifest.xml

«Стандартный» и «singleTop» режимы отличаются друг от друга всего в одном уважение: каждый раз новое намерение для «стандартной» деятельности новый экземпляр класса создается для ответить на это намерение. Каждый экземпляр обрабатывает одно намерение. Аналогично новый экземпляр активности "singleTop" также может быть создан для обработки нового намерение. Однако если целевая задача уже есть существующий экземпляр активность на вершине своего стека, этот экземпляр получит новый намерение (в вызове onNewIntent ()); а новый экземпляр не создается. В других обстоятельства - например, если существующий экземпляр singleTop активность входит в целевую задачу, но не наверху стека, или если он находится наверху стопки, но не в целевая задача - новый экземпляр будет быть созданы и помещены в стек.

39
ответ дан 28 November 2019 в 21:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: