If the predicateStrings is not used in handleReactivation(), why pass it to that method?

The handling of predicateStrings is not consistent. If you are constructing a new context, the context itself takes care of saving the predicateStrings. But if it's reactivation, the caller is handling the update.