@Override public void onCreate() { super.onCreate(); try { cacheManager = createCacheManager(getApplication()); } catch (CacheCreationException e) { Ln.e(e); stopSelf(); return; } if (cacheManager == null) { Ln.e(new CacheCreationException("createCacheManager() can't create a null cacheManager")); stopSelf(); return; } progressReporter = createRequestRequestListenerNotifier(); spiceServiceListenerNotifier = createSpiceServiceListenerNotifier(); final ExecutorService executorService = getExecutorService(); final NetworkStateChecker networkStateChecker = getNetworkStateChecker(); requestProcessor = createRequestProcessor(executorService, networkStateChecker); requestProcessor.setFailOnCacheError(DEFAULT_FAIL_ON_CACHE_ERROR); notification = createDefaultNotification(); Ln.d("SpiceService instance created."); }
private void startForeground(final Notification notification) { try { final Method setForegroundMethod = Service.class.getMethod("startForeground", int.class, Notification.class); setForegroundMethod.invoke(this, getNotificationId(), notification); } catch (final SecurityException e) { Ln.e(e, "Unable to start a service in foreground"); } catch (final NoSuchMethodException e) { Ln.e(e, "Unable to start a service in foreground"); } catch (final IllegalArgumentException e) { Ln.e(e, "Unable to start a service in foreground"); } catch (final IllegalAccessException e) { Ln.e(e, "Unable to start a service in foreground"); } catch (final InvocationTargetException e) { Ln.e(e, "Unable to start a service in foreground"); } }
@Override public boolean onCreate() { MatcherController controller = new MatcherController(); for (Class<?> clazz : getExposedClasses()) { try { if (!clazz.isAnnotationPresent(Contract.class)) { throw new Exception( "Class " + clazz + " is not annotated with the @Contract annotation."); } Class<?> contractClazz = ContractHelper.getContractClassForClass(clazz); int contentUriPatternMany = ContractHelper.getContentUriPatternMany(contractClazz); int contentUriPatternOne = ContractHelper.getContentUriPatternOne(contractClazz); controller.add(clazz, SubType.DIRECTORY, "", contentUriPatternMany); controller.add(clazz, SubType.ITEM, "#", contentUriPatternOne); } catch (Exception e) { Ln.e(e); } } setMatcherController(controller); return true; }