2013-05-23 2 views
0

Как я могу передавать данные между двумя действиями, без действительно переходить к этой деятельности? Сценарий выглядит следующим образом:Android Как передавать данные между действиями, не переходя на другую деятельность

Activity A - заставка. Пока отображается экран заставки, некоторые данные генерируются на фоне типа ArrayList. После того, как эти данные будут загружены, мне нужно запустить Activity B (скажем, экран входа в систему), и только перед этим мне нужно передать данные на Activity C. Я знаю, что могу использовать PutExtras для передачи данных, но это не приведет к запуску цели Activity вместо этого отправляет только данные?

Благодаря

Полный поток приложения выглядит следующим образом:

Activity A (заставка) ->Activity B (Войти экран) ->Activity D (некоторые пользовательский интерфейс и кнопки) ->Activity C (активность, которая должна иметь возможность загружать данные, сгенерированные во всплывающем окне, с определенным сообщением Button).

+0

Вы можете использовать 'SharedPreferences'. Хотя это может быть не очень хорошо. Это действительно поможет сценарию Usrname и Password. –

+3

Что такое «Активность C»? Вы считали, что вместо этого это «Сервис»? Предполагается, что деятельность будет видимой. – kamituel

+0

Обработчики и отправка сообщений между ними - это способ обработки такой задачи. В основном используется обратный вызов между действиями, когда другой выполняет конкретную задачу. –

ответ

0

Если вы хотите передать данные в текущую деятельность и не запускать новый экземпляр этого действия, вам просто нужно установить флаги в соответствии с вашими намерениями. Например:

Intent i = new Intent() 
i.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); 

не будет перезапускать действие, если оно уже работает в верхней части стека. Если все, что вы хотите сделать, - это получить данные в Activity C, который работает без повторного запуска, вы можете попробовать этот или один из других флагов. Их куча. Просто посмотрите, пожалуйста, the list и посмотрите, подходит ли он вашим потребностям.

2

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

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

Если у Вас есть дорогостоящая задача сделать как загрузка данных сделать это в AsyncTask

  • , если эта задача должна быть начать и закончить, когда Вы входите и оставить Activity A использовать fragments
  • если он должен закончить как только Вы начинаете ли активность А еще существует или оно уже было разрушено Используйте services

мест Вы можете хранить эти данные, загруженные таким образом можно легко получить доступ позже сформировать любую активность является database with help of Loaders (загрузчик необязательный, но очень хороший) или SharedPreferences.

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