SoundTriggerTestApp: also unload on error conditions

When the service is killed/going down, it should unload all the sound
models it has running as part of being a good citizen.

Test: Kill/stop the service and see that the models are evicted from the
HAL

Change-Id: I6f88c8327682df5870b381d5bafda79e67fb7079
This commit is contained in:
Chris Thornton
2017-03-22 13:50:04 -07:00
parent c79d4388de
commit e492e493f4

View File

@@ -100,7 +100,7 @@ public class SoundTriggerTestService extends Service {
@Override
public void onDestroy() {
super.onDestroy();
stopAllRecognitions();
stopAllRecognitionsAndUnload();
unregisterReceiver(mBroadcastReceiver);
}
@@ -171,7 +171,7 @@ public class SoundTriggerTestService extends Service {
@Override
public void onTaskRemoved(Intent rootIntent) {
super.onTaskRemoved(rootIntent);
stopAllRecognitions();
stopAllRecognitionsAndUnload();
stopSelf();
}
@@ -197,8 +197,10 @@ public class SoundTriggerTestService extends Service {
}
}
private synchronized void stopAllRecognitions() {
private synchronized void stopAllRecognitionsAndUnload() {
Log.e(TAG, "Stop all recognitions");
for (ModelInfo modelInfo : mModelInfoMap.values()) {
Log.e(TAG, "Loop " + modelInfo.modelUuid);
if (modelInfo.detector != null) {
Log.i(TAG, "Stopping recognition for " + modelInfo.name);
try {
@@ -206,6 +208,12 @@ public class SoundTriggerTestService extends Service {
} catch (Exception e) {
Log.e(TAG, "Failed to stop recognition", e);
}
try {
mSoundTriggerUtil.deleteSoundModel(modelInfo.modelUuid);
modelInfo.detector = null;
} catch (Exception e) {
Log.e(TAG, "Failed to unload sound model", e);
}
}
}
}