How to Pause the game (Android) - correct way

Can someone tell me the the correct way to pause a game on Android? Currently what i am doing is just to set the Time.timeScale to 0 and AudioListener.pause to true; I do it in the game scene itself(Nothing hovers above the scene when paused). Code is give for reference

void pauseGame(){
    paused = true;
	Time.timeScale = 0f;
	pauseGui.text = "[ resume ]";
	AudioListener.pause = true;
	Debug.Log("paused..");
}

void resumeGame(){
    paused = false;
	Time.timeScale = 1f;
	pauseGui.text = "[ pause ]";
	AudioListener.pause = false;
	Debug.Log("resumed..");
}

The problem that I face is when I pause the game, lock my screen (Android) and then unlock it, the AudioListener gets re-enabled (don’t know why).

I can use an Update() method to check and set AudioListener.pause to true if ‘paused’ boolean is true. But that will cause the background music to play for a split second.
I know that there is some-other neat and correct way to pause the game, but don’t know how. I am just starting to learn unity.

Can someone help me?

The first in what function cause your pauseGame() and resumeGame()? Problem interesting, before the such I didn’t note. There is a decision, but it not the absolutely. As you also told in Update() it is necessary to add a check condition. But thus in your functions to add one more line:

 void pauseGame() {
  paused = true;
  Time.timeScale = 0f;
  pauseGui.text = "[ resume ]";
  AudioListener.pause = true;
  AudioListener.volume = 0.0f;//set volume audio
  Debug.Log("paused..");
 }

 void resumeGame() {
  paused = false;
  Time.timeScale = 1f;
  pauseGui.text = "[ pause ]";
  AudioListener.pause = false;
  AudioListener.volume = 1.0; //set audio volume
  Debug.Log("resumed..");
 }

 void Update() {
  //Create condition
  if(paused && !AudioListener.pause) {
   AudioListener.pause = true;
  }
 }

I hope that it will help you.