c174288d34
Got a little too aggressive about cleaning up service state; need to avoid removing services from an app until we are in the second loop doing the final cleanup, otherwise we can leave services around with restarting their process. Also fix crash: W/BinderNative( 667): Uncaught exception from death notification W/BinderNative( 667): java.lang.ArrayIndexOutOfBoundsException: length=0; index=0 W/BinderNative( 667): at android.util.ArraySet.valueAt(ArraySet.java:301) W/BinderNative( 667): at com.android.server.am.ActiveServices.killServicesLocked(ActiveServices.java:2069) W/BinderNative( 667): at com.android.server.am.ActivityManagerService.cleanUpApplicationRecordLocked(ActivityManagerService.java:12412) W/BinderNative( 667): at com.android.server.am.ActivityManagerService.handleAppDiedLocked(ActivityManagerService.java:3596) W/BinderNative( 667): at com.android.server.am.ActivityManagerService.appDiedLocked(ActivityManagerService.java:3744) W/BinderNative( 667): at com.android.server.am.ActivityManagerService$AppDeathRecipient.binderDied(ActivityManagerService.java:1024) W/BinderNative( 667): at android.os.BinderProxy.sendDeathNotice(Binder.java:493) W/BinderNative( 667): at dalvik.system.NativeStart.run(Native Method)