Я пытаюсь сделать что-то подобное этой регистрации stackoverflow. То, что я хочу сделать, должно прочитать определение действия или обслуживания от SD-карты. Для предотвращения явных проблем разрешения я создаю версию оболочки этого действия в .apk, но пытаюсь заменить его действием того же имени, находящегося на SD-карте во время выполнения. К сожалению, я могу загрузить определение класса действия из использования SD-карты DexClassLoader, но исходное определение класса является тем, которое выполняется. Существует ли способ указать, что новое определение класса заменяет старый или какие-либо предложения при предотвращении явных проблем разрешения, на самом деле не обеспечивая необходимое действие в пакете? Пример кода:
ClassLoader cl = new DexClassLoader("/sdcard/mypath/My.apk",
getFilesDir().getAbsolutePath(),
null,
MainActivity.class.getClassLoader());
try {
Class> c = cl.loadClass("com.android.my.path.to.a.loaded.activity");
Intent i = new Intent(getBaseContext(), c);
startActivity(i);
}
catch (Exception e) {
Intead запуска com.android.my.path.to.a.loaded.activity
указанный в /sdcard/mypath/My.apk
, это запускает действие, статически загруженное в проект.