К чему может привести использование static переменных?
1,00
р.
р.
Всем добрый вечер. В процессе разработки приложения есть большая необходимость передачи каких либо переменных из одной Активити в другую. Я использовал всегда стандартный метод: Intent intent = new Intent(First.this, Second.class) intent.putExtra("key",from_to) startActivity(intent) И далее получение: String from_to = getIntent().getExtras().getString("key", "null") Но данный метод мне откровенно осточертел, и я решил делать это через static преременные так: static String from_to Где то: from_to = "Hello dear Android" И в другой активити: String from_to = First.from_to Но теперь меня мучает вопрос: чем же это может обернуться для меня?! Заранее всем спасибо!
Ответ обернется NullPointerException в тот прекрасный момент, когда приложение полностью выгрузится из памяти и будет открыто вновь (например, свернуто кнопкой "Домой" и открыто из списка последних запущенных). допустим такая ситуация: в Activity_A есть статичное поле, в Activity_B оно используется. текущий стек такой Activity_A -> Activity_B. приложение выгрузилось из памяти, все ссылки на объекты, включая статичные поля, были обнулены. Приложение восстанавливается из памяти, первой будет загружена Activity_B (поскольку она на вершине стека), которая обращается к статичному полю в Activity_A, и тут же получает NullPointerException. Надеюсь понятно описал. как раз-таки способ передачи через Intent более предпочтителен, поскольку все переданные параметры будут сохранены вместе с состоянием текущей активности и будут так же восстановлены.