@SuppressWarnings("unchecked")
    private static <I, P, R> WorkerTask<I, P, R> getOrCreate(@NonNull final String globalId, @Nullable final Function<I, Observable<TaskValue<P, R>>> taskSupplier, @Nullable final Scheduler taskScheduler, @Nullable final Scheduler observerScheduler) {
        synchronized (taskStore) {
            WorkerTask<I, P, R> task = (WorkerTask<I, P, R>) taskStore.get(globalId);
            if (task == null && taskSupplier != null) {
                checkNoLifecycleReferences(taskSupplier, null);
                task = new WorkerTask<>(globalId, taskSupplier, taskScheduler, observerScheduler);
                Log.i(getLogPraefix(globalId) + "GLOBAL: add task " + globalId);
                taskStore.put(globalId, task);
            }
            return task;
        }
    }
registers an observer not bound to a lifecycle. This method is used for Unit-Tests
main/src/main/java/cgeo/geocaching/utils/workertask/WorkerTask.java