Вызов MainActivity из модуля - PullRequest
0 голосов
/ 07 июня 2019

У меня есть несколько модулей Android, которые все зависят от одного и того же библиотечного модуля для бизнес-логики.

com.example.api
-> com.example.app1
-> com.example.app2
-> com.example.app3

Теперь я пытаюсь получить текущий MainActivity (android.intent.action.MAIN) из библиотеки.Не указывая желаемое действие при вызове действия, я получаю IntentPicker для всех приложений на устройствах, в которых есть действие MAIN.

Как мне получить classpath моего текущего MainActivity?т.е. com.example.app1.MainActivity

Ответы [ 2 ]

0 голосов
/ 12 июня 2019

Чтобы получить текущее имя пакета приложения, вы можете позвонить getApplicationContext().getPackageName() и получить намерение запуска этого пакета, как упоминалось в @ hari-n-jha, вы можете позвонить getPackageManager().getLaunchIntentForPackage( String packageName ).

Полное решение будет:

String packageName = getApplicationContext().getPackageName();
Intent i = getPackageManager().getLaunchIntentForPackage(packageName);
startActivity(i);
0 голосов
/ 07 июня 2019

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

Чтобы удовлетворить ваши потребности, вы можете вызвать основное действие из модуля с помощью пакета.менеджер.Вы можете увидеть подробности на сайте разработчика .Вызов может быть чем-то вроде

Intent appMainIntent = getPackageManager().getLaunchIntentForPackage("com.app.myproject");
startActivity(appMainIntent);

Просто чтобы сообщить вам, appMainIntent может быть нулевым, если пакет не найден.Поэтому проверьте исключение нулевого указателя в своем коде.

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