OnEnable, OnDisable for event handlers

So have read several threads explaining MonoBehaviour execution order and suggested best practices.

My question is
Is it ALWAYS best to subscribe and unsubscribe your events in the OnEnable and OnDisable methods respectively?

  void OnEnable()
    {
        EventManager.Instance.AddListener(this, "Event_Init");
    }

    void OnDisable()
    {
        EventManager.Instance.DetachListener(this, "Event_Init");
    }

It has already been discussed. it depends on your target, but yes most of the time you need to subscribe in OnEnable and unsubscribe in OnDisable, if you want to occur when a gameobject is being activated or deactivated