public synchronized void unregisterApp(GameView app) { if (app == null || !isRegistered(app)) { return; } if (mainContext != null && mainContext.getView() == app) { mainContext = null; } if (allContexts != null) { for (int i = 0; i < allContexts.size(); i++) { GameContext context = (GameContext) allContexts.get(i); if (context.getView() == app) { allContexts.remove(i); break; } } if (mainContext == null) { mainContext = (GameContext) allContexts.get(0); } if (allContexts.size() == 1) { allContexts = null; } } if (getNumRegisteredApps() == 0) { timer.stop(); } }