Я работаю над проектом, в котором я должен загружать файл jar с SD-карты во время выполнения. Я успешно достиг этого, используя класс dexloader
, а также я могу вызывать любую функцию с или без аргументов класса в файле jar.Реализация интерфейса из динамически загружаемого файла jar с использованием dexloader
Теперь проблема, с которой я сталкиваюсь, заключается в том, что я должен реализовать интерфейс, который присутствует в файле jar для обратных вызовов в моем проекте. Я не могу найти какое-либо решение для достижения этого до сих пор.
Я вызов метода так:
final Class[] args = new Class[1];
args[0] = Context.class;
final Method doSomething = classToLoad.getMethod("doSomething", args);
final Object myInstance = classToLoad.newInstance();
doSomething.invoke(myInstance, this);
где classLoad является экземпляром класса динамически загружается из файла JAR.
Любая помощь будет оценена. Спасибо заранее.
Спасибо за ответы. Его не понятно. Как вы получите доступ к этому интерфейсу .. ?? и он вернет обратный вызов проекту. –
newProxyInstance() возвращает объект, который реализует требуемый интерфейс. Когда на этот объект вызывается метод интерфейса, вызов пересылается в экземпляр InvocationHandler, заданный newProxyInstance(). – Rediska
См. Мой отредактированный вопрос. Я добавил часть своего кода. Можете ли вы помочь, как и где реализовать свое решение ... :) Спасибо заранее –