Fix some errors in the foreground compat

The foreground compatibility sample wouldn't actually work on an old
platform because of a misplaced return statement in onCreate and the
invokeMethod would ignore its arguments.

Change-Id: Ic1d1a6d8579700215c7988cd603a6bb86f1346a4
This commit is contained in:
Kenny Root
2011-03-28 23:48:20 -07:00
parent e5a81ca2f5
commit c8c211a085

View File

@@ -66,7 +66,7 @@ public class ForegroundService extends Service {
void invokeMethod(Method method, Object[] args) {
try {
mStartForeground.invoke(this, mStartForegroundArgs);
method.invoke(this, args);
} catch (InvocationTargetException e) {
// Should not happen.
Log.w("ApiDemos", "Unable to invoke method", e);
@@ -103,15 +103,7 @@ public class ForegroundService extends Service {
// If we have the new stopForeground API, then use it.
if (mStopForeground != null) {
mStopForegroundArgs[0] = Boolean.TRUE;
try {
mStopForeground.invoke(this, mStopForegroundArgs);
} catch (InvocationTargetException e) {
// Should not happen.
Log.w("ApiDemos", "Unable to invoke stopForeground", e);
} catch (IllegalAccessException e) {
// Should not happen.
Log.w("ApiDemos", "Unable to invoke stopForeground", e);
}
invokeMethod(mStopForeground, mStopForegroundArgs);
return;
}
@@ -130,10 +122,10 @@ public class ForegroundService extends Service {
mStartForegroundSignature);
mStopForeground = getClass().getMethod("stopForeground",
mStopForegroundSignature);
return;
} catch (NoSuchMethodException e) {
// Running on an older platform.
mStartForeground = mStopForeground = null;
return;
}
try {
mSetForeground = getClass().getMethod("setForeground",