In the activity, we can use audiomanager AM = (audiomanager) getsystemservice (context. audio_service );
To obtain the system service and use it.
But in a non-activity class, for example, a class inherits framelayout or viewgroup.
Audiomanager AM = (audiomanager) getsystemservice (context. audio_service );
If am is used, a null pointer exception is thrown, indicating that am is null.
This is why, because context can only be used by the current global application object. When your context life cycle is separated from the context life cycle of the global master application, a null pointer exception is thrown.
The solution is simple. We only use this method:
Context con;
Audiomanager AM = (audiomanager) (con. getapplicationcontext (). getsystemservicecontext. audio_service );
In this way, if am is used, the global application's am will not throw an exception.