Деятельность с backgroundthread, а не innerclass, общение - PullRequest
0 голосов
/ 24 марта 2011

Привет всем, это будет содержать несколько вопросов, так как я, кажется, не совсем понимаю.

У меня 1 класс, активность. который должен отображать информацию.

Затем у меня есть фоновый поток, расширяющий runnable, который продолжает получать новые данные (поскольку я не использовал AsyncTask, я мог бы использовать его в качестве службы, но, поскольку у меня есть некоторые важные ресурсы, я бы не удаляется при выходе из потока активности)

Но я сомневаюсь, как общаться между этими 2.
Сначала я подумал о Intent, но они, похоже, используются в основном для запуска других действий или чего-то подобного, и мне нужно что-то постоянное, поскольку данные будут в постоянном потоке.
Затем я обнаружил обработчик, но, похоже, он не работает, когда мой поток не является внутренним классом, поэтому я подумываю вернуться к старому шаблону Java-наблюдателя, если невозможно каким-либо образом передать обработчик во внешний класс .

Любые мысли будут с благодарностью

С уважением Андерс Метник

Ответы [ 2 ]

0 голосов
/ 24 марта 2011

Поток не должен находиться вне контекста действия Creator, особенно если вы хотите сохранить его вне действия, лучше использовать Service (и управлять потоком) для хранения этих данных.

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

Класс приложения: содержит те «постоянные» данные, которые вы упомянули.операций Activity-class: Intent Receiver.Всякий раз, когда получен сигнал о намерениях, получите необходимые данные из класса Application.

0 голосов
/ 24 марта 2011

Для вашего случая есть механизм - он называется обработчиками. Подробнее здесь .

Что касается наличия потока в качестве внутреннего класса: Создайте свой поток как отдельный класс, добавьте конструктор с параметром обработчика и передайте его из своей деятельности.

...