2013-02-10 2 views
2

У меня есть определенные данные в классе модели данных и вы хотите поделиться этими данными/объектом с другим видом деятельности. Единственный экземпляр может быть хорошим выбором, но вы хотите закончить мою предыдущую деятельность и, следовательно, получите нулевой указатель. Пожалуйста, предложите наилучший способ сделать это?Как обмениваться объектами между действиями, сериализацией или SingleInstance?

+0

просто используйте статическое ключевое слово перед переменной. И получить доступ к нему с именем class.variable- –

+0

@manish это не очень хорошая практика, и если моя активность будет убита, все статические данные также не сработают. Статические данные останутся, если объект есть. Пожалуйста, предоставьте исправление, если я ошибаюсь. –

+0

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

ответ

1

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

Intent intent = new Intent(this, B.class); 
ArrayList<String> data = new ArrayList<String>(); 
arrays.add("testing"); 
intent.putExtra("arrayList", data); 
startActivity(intent); 

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

ArrayList<String> arrayList =(ArrayList<String>) getIntent().getSerializableExtra("arrayList"); 
1

Лучшая практика заключается в том, чтобы использовать объект намерения для этого, помещая либо посылку, либо сериализованные данные в свои дополнительные функции.

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

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