Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Qt в данном случае более лаконичен, хотя для реализации динамического связывания выходит за рамки C++ догенеривая код в процессе сборки проекта с помощью MOC (Meta Object Compiler).
public class MegaShooter
private void hardWork() {
// .....
Connector.emit(this, "multipleChanges", 123, "123", 123.0123);
// .....
Connector.emit(this, "simpleFlagChanged", false);
}
}
public class MainActivity extends Activity {
private MegaShooter megaShooter = new MegaShooter();
private AnyOtherObject anyObject = new AnyOtherObject();
// ......
@Override
public void onCreate(Bundle savedInstanceState) {
// .....
Connector.connect(megaShooter, "SIGNAL(multipleChanges(int, String, double))",
this, "SLOT(shoot1(int, String))");
Connector.connect(megaShooter, "SIGNAL(multipleChanges(int, String, double))",
anyObject, "SLOT(anyShoot(int))");
Connector.connect(megaShooter, "SIGNAL(multipleChanges(int, String, double))",
this, "SLOT(shoot2(int, String, double))");
// ....
Connector.connect(megaShooter, "SIGNAL(simpleFlagChanged(boolean))",
this, "SLOT(setFlag(boolean))");
}
}
public void shoot1(int rate, String message) {
// .....
}
public void shoot2(int rate, String message, double d) {
// .....
}
public void setFlag(boolean flag) {
// ....
}
}
Реализация Qt signal/slot на Android