В настоящее время я сохраняю имя метода в качестве значения в SharedPreferences, строю путь к методу из строк и вызываю метод с помощью .invoke()
.Методы разделены на несколько классов.
void invokeMethod(String method, String className) {
String mType = getPackageName() + "." + className;
try {
Class mClass = Class.forName(mType);
Constructor<?> cons = mClass.getConstructor(Context.class);
Object o = cons.newInstance(getApplicationContext());
Method mMethod = mClass.getMethod(method);
mMethod.invoke(o);
} catch (Exception e) {
e.printStackTrace();
}
}
Это сработало для подтверждения концепции, но кажется очень хакерским.Он ссылается на мой предыдущий вопрос .Я решил эту ошибку, но один из пользователей предложил вообще удалить invokeMethod ().Как?Есть ли лучший подход?