Субактивность должна быть уведомлена, когда у основного действия есть обновленное значение

1

У меня есть основное действие, которое запускает поток, возвращающий результат (пусть говорят, строку) в основное действие через Handler. Я пытаюсь создать еще одну активность, вызванную из этой активности, сразу после создания указанной темы. Это второе действие покажет результат (т.е. Поле строки), исходящий из основного действия (отправляется путем добавления дополнительных функций). Таким образом, значение String сначала инициализируется нулевым значением и через некоторый момент времени. Thread изменит значение String. Поэтому я должен отправить это обновленное значение во второе действие, которое уже находится в верхней части стека активности, и ожидает обновления значения этой строки.

Я огляделся, но люди обсуждают методы onActivityResult(). Есть ли у вас какие-либо идеи об этом?

Теги:
android-intent

2 ответа

2

Я вижу два возможных решения:

  • Если ваше второе действие (получатель) имеет атрибут SINGLE_TOP, вы можете отправить его намерение и обработать его в Activity.onNewIntent(). SINGLE_TOP Intent SINGLE_TOP должен работать.
  • Вы можете передать обработчик из активности получателя в действие отправителя ((SenderActivity) getParent()).setReceiverHandler(handler) (этот код находится в ReceiverActivity, setReceiverHandler() должен быть объявлен в SenderActivity) и использовать его для уведомления ReceiverActivity о любые изменения. UPD: этот подход позволяет осуществлять связь между TabActivity и встроенными функциями. В общем случае это не сработает.
  • 0
    При вашем втором предложении ((SenderActivity) getParent ()) возвращает значение NULL. Документация говорит, что getParent () возвращает родительское действие, если это представление является встроенным дочерним. Затем я изменил SenderActivity, чтобы расширить ActivityGroup вместо Activity. Но это также не сработало. Каким образом эти два занятия должны делать то, что вы написали?
  • 0
    Вы правы. Этот метод используется в нашем коде так часто, что я счел его универсальным, хотя на самом деле он работает только между TabActivity и его дочерними элементами.
0

То, что я бы рекомендовал делать, - это в вашей деятельности, где значение Strin изменяется, прослушивание изменений в этом действии, а затем на основе значения String запустите новую actvity. У вас есть кнопка для отображения и проверки, является ли текст нулевым или нет, и запускайте соответствующую деятельность. Этот метод представляется выполнимым.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню