Значение этой строки кода в Android приведено ниже ...? - PullRequest
0 голосов
/ 13 октября 2018
startActivity(new Intent(this, Class.forName(getPackageManager().getApplicationInfo(getPackageName(), 128).metaData.getString("com.sadaf.javafiles.MAIN_ACTIVITY_CLASS_NAME"))));

1 Ответ

0 голосов
/ 13 октября 2018

Этот код предназначен для создания и добавления другого действия на верхний уровень пользовательского интерфейса

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...