Common constants such as identifiers, pref key names, etc.
Usually I create a constant file called C, as it is better read. C.SHARED_PREFS easier to understand that Application.SHARED_PREFS IMHO.
Global variables (i.e., setters / getters) that reflect the current state of the user interface, navigation, selected fragment, and, in general, temporary data that does not need to be saved.
This will be better in the Activity or component to which it relates (for example, the state of the Activity user interface should probably be stored in the icicle package or in this Activity instance).
Hooks to save data when certain conditions are triggered.
That should be good.
Updating the user interface after changing preferences.
Again, I feel that it will be better in the appropriate component.
Providing easy access to the context from anywhere in the application, including code where getApplication () is not available, for example. through a static getter such as MyApp.getApp ().
This will work, but be careful with memory leaks. Usually you should pass the context as a parameter when calling the method from Activity or Service or any other. Less likely to leak memory.
General methods requiring visibility of global state variables and which will become too cumbersome to move on to the initiate classes.
I believe that it would be better to make an effort to allocated classes, since when your application will expand in functions and sizes, it will be difficult to maintain.