Я работаю над очень простым приложением, которое содержит два действия - MainActivity (parent) и detailActivity (child). Родительское и дочернее отношение задано в файле манифеста.Лучшая практика для загрузки данных и сохранения их постоянной
Mainactivity имеет recyclerView и для каждого элемента, щелкнув на экране ресайклера, он открывает детальную активность.
Все работает до сих пор, за исключением того, что мое приложение работает медленно.
У меня есть метод processJson в методе onCreate MainActivity, который загружает данные из статического json-файла. Этот файл довольно большой (> 700 строк)
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_char);
processJson();
.......
}
Переключение с MainActivity на DetailActivity
Intent intent = new Intent(this, CharDetailActivity.class);
intent.putExtra("charId", charId);
cxt.startActivity(intent);
Переключение с DetailActivity к MainActivity только через BackButton или через ActionBar задней кнопки.
AndroidManifest.xml
<activity
android:name=".CharDetailActivity"
android:label="@string/title_activity_char_detail" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".CharActivity" />
</activity>
Если удалить мета-теги приложение вызывает MainActivity-х OnCreate только один раз!
Каждый раз, когда приложение переключается с DetailActivity на MainActivity, оно вызывает onCreate и перезагружает данные. Есть ли лучший способ загрузки данных в приложение? или сохранить instace из MainActivity?
Опубликуйте код, в котором вы переключитесь с 'DetailActivity' на' MainActivity' и наоборот. – Simas
обновленный вопрос с кодом. Спасибо – Jayaram
'onCreate()' не следует вызывать, если вы не уничтожаете 'MainActivity' при переключении на другой. Интересно, вы в любое время называете 'finish()' или возвращаете основное действие, вызывая 'startActivity'? – Simas