2010-09-01 2 views
1

У меня есть ListActivity, содержащий объект, который я определил, называется MessageItem. Я хочу передать данные в этом MessageItem в Службу, чтобы сделать некоторые вещи, но я не хочу, чтобы Activity была привязана к службе, так что Android не может вернуть действие, если это необходимо (утечка ergo памяти).Это утечка памяти?

То, что я делаю, передает объект MessageItem методу в одноэлементном классе вместе с контекстом приложения. Метод singleton использует приложение Context для запуска моей службы. Я передаю эту Службу намерение. В этом намерении, я ставлю элементы из объекта MessageItem следующим образом:

intent.putExtra("subject", msg.getSubject()); 
    intent.putExtra("summary", msg.getSummary()); 
    intent.putExtra("created_on", msg.getCreatedDate()); 
    intent.putExtra("read", msg.getIsRead()); 

ли эти данные связать свою активность в Услугу Намерение получает переходило в и вызвать утечку памяти?

будет ли это лучше реализация ?:

intent.putExtra("subject", new String(msg.getSubject())); 
    intent.putExtra("summary", new String(msg.getSummary())); 
    intent.putExtra("created_on", new Integer(msg.getCreatedDate())); 
    intent.putExtra("read", new Boolean(msg.getIsRead())); 

ответ

4

Вам не нужно использовать новую строку или целое. Когда данные передаются по намерениям, Он будет разрознен и неравномерен.

+0

Ах да, хорошо хорошо – Andrew

+0

Разделено, что Android называет это, а не просто называет его коробкой? – Powerlord

2

ли эти данные связать свою активность в службу

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

Будет ли это лучше реализовать?

Нет! Это было бы намного хуже. Множество данных будет скопировано, и многие объекты будут созданы для ничего.

+0

Благодарим вас за разъяснение – Andrew

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