Этот код предназначен для создания и добавления другого действия на верхний уровень пользовательского интерфейса
startActivity()
Может вызываться из любого контекста / действия, в основном используется как
finish()
startActivity(new Intent(this, NewActivity.class));
Это используетсячтобы закрыть текущее действие и начать следующее
Для более подробного объяснения, пожалуйста, обратитесь к:
https://developer.android.com/training/basics/firstapp/starting-activity#BuildIntent
startActivity(new Intent(this, Class.forName(getPackageManager().getApplicationInfo(getPackageName(), 128).metaData.getString("com.sadaf.javafiles.MAIN_ACTIVITY_CLASS_NAME"))));
Для намерения требуется контекст и класс в качестве параметра,контекст «this» (текущий контекст из отображаемой в данный момент операции)
Класс из Class.forName (String), для которого требуется значение String для получения имени класса из действия
Получает это строковое значение при вызове:
getPackageManager().getApplicationInfo(getPackageName(), 128).metaData.getString(stringKey)
stringKey
- это файл проектов AndroidManifest.xml
android: name:
<activity android:name="com.sadaf.javafiles.MAIN_ACTIVITY_CLASS_NAME" >
</activity>
Так что, по сути, этофрагмент кода выполняет получение .class вашего объявленного «основного действия» программно, вместо использования «стандартного» способа просто использовать MainActivity.class