Android: introduce setContext

setContext is needed by modules that don't need an Activity object to run (e.g. QtMultimeida, QtSensors, etc.)

Task-number: QTBUG-54506
Change-Id: Ief9daff52ddefdb27092040c89dfce9e466eac5c
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
This commit is contained in:
BogDan Vatra 2016-07-25 16:51:51 +03:00
parent 091e61b352
commit 79af4e1e31
2 changed files with 26 additions and 10 deletions

View File

@ -489,11 +489,19 @@ public class QtActivityDelegate
continue;
try {
@SuppressWarnings("rawtypes")
Class<?> initClass = classLoader.loadClass(className);
Object staticInitDataObject = initClass.newInstance(); // create an instance
Method m = initClass.getMethod("setActivity", Activity.class, Object.class);
m.invoke(staticInitDataObject, m_activity, this);
Class<?> initClass = classLoader.loadClass(className);
Object staticInitDataObject = initClass.newInstance(); // create an instance
try {
Method m = initClass.getMethod("setActivity", Activity.class, Object.class);
m.invoke(staticInitDataObject, m_activity, this);
} catch (Exception e) {
}
try {
Method m = initClass.getMethod("setContext", Context.class);
m.invoke(staticInitDataObject, (Context)m_activity);
} catch (Exception e) {
}
} catch (Exception e) {
e.printStackTrace();
}

View File

@ -120,12 +120,20 @@ public class QtServiceDelegate
for (String className: loaderParams.getStringArray(STATIC_INIT_CLASSES_KEY)) {
if (className.length() == 0)
continue;
try {
Class<?> initClass = classLoader.loadClass(className);
Object staticInitDataObject = initClass.newInstance(); // create an instance
Method m = initClass.getMethod("setService", Service.class, Object.class);
m.invoke(staticInitDataObject, m_service, this);
Class<?> initClass = classLoader.loadClass(className);
Object staticInitDataObject = initClass.newInstance(); // create an instance
try {
Method m = initClass.getMethod("setService", Service.class, Object.class);
m.invoke(staticInitDataObject, m_service, this);
} catch (Exception e) {
}
try {
Method m = initClass.getMethod("setContext", Context.class);
m.invoke(staticInitDataObject, (Context)m_service);
} catch (Exception e) {
}
} catch (Exception e) {
e.printStackTrace();
}