2012-04-11 3 views
2

Я новичок в программировании на Android и задаю следующий вопрос.Передача значения из вызываемой активности

У меня есть активность (экран), которая вызывает другое действие (экран). Я могу передать значения из Activity2, создав intext и используя putExtras. Затем, когда я вернусь к своей основной деятельности1, я могу (onActivityResult), я могу получить пары значений строки из возвращаемого намерения.

Вопрос 1, если Activity2 закончен, какова вероятность того, что Intent i, созданный там, может быть освобожден, если сборщик мусора начнет? Или андроид не очищает такую ​​память до выхода приложения.

Вопрос 2) Если я затем вернуться в деятельности2 и снова сделать «новый Intent .....» является то, что выделение даже больше памяти и, если так это неэффективно»

Вопрос 3 - Есть лучший способ передачи данных обратно из вызываемой деятельности вызывающей деятельности или с помощью Intent и putExtras т.д. единственным способом?

Благодаря Тони

ответ

0

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

Если его только байты или несколько килобайта, то это мой ответ:

  1. не беспокоиться о мусорном collector.It будет делать свою работу
  2. да больше памяти будет выделена. нет, это не является неэффективным
  3. Предпочитаемый способ для намерения и putExtras.

Если данные действительно большие, и вы можете сохранить их на SD-карте и передать файл uri между действиями.

1

Мое предложение было бы.

Если у вас есть данные, которые использовались различной деятельностью, то вместо этого передавайте данные, используя Intent from 1 activity to another. создать глобальную статическую переменную уровня, а затем получить доступ к этой глобальной переменной через приложение.

+0

Если у вас есть идея из приведенного выше ответа, можете ли вы принять ответ, чтобы он мог помочь другим. –

+0

Я думал, что глобальные переменные были «плохими» ;-) – NoToy

2

В классе, из которого вы хотите отправить DATA-

Intent intent = new Intent(context,NextClass.class); 
intent.putExtra("ACTIVITY_ID","Any value or variable"); 
intent.putExtra("CUSTOMER_ID","Any Value or variable"); 
startActivityForResult(intent, 0); 

Теперь в Получая класс, позволяет сказать NextClass

Bundle extras=getIntent().getExtras(); 
String ACTIVITY_ID=extras.getString("ACTIVITY_ID"); 
String CUSTOMER_ID=extras.getString("CUSTOMER_ID"); 

С помощью этого метода можно легко передавать данные от одного вида деятельности к другому ...

+0

Это что-то вроде того, что я делаю, но я возвращаюсь из вызываемой деятельности. – NoToy

+0

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

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