delay between menu and game activity

I am making my own game for practising. Once my game became bigger and bigger i noticed some delay once the main activity was about load.

So after reading, some threads i come up with another activity ( main ) showing a splash screen until the real main (menu) activity is loaded.

That worked pretty well, but since my game is on another activity once i change activity to play the game and then press the back button, or even when i am calling again the real main (menu) activity i face again this shitty lag/delay.

So to summurize, i have 3 activities so far.

  1. The main activity which loads the splash screen and then calls the MenuActivity 2) The MenuActivity which basicly provides settings and buttons to start 3) The GameActivity which is the game

I could easily remove the MenuActivity and mix up the game with the menu activity handling the menu with the visibility of the images/buttons but i am wondering why is this happening for future knowleque also.

Here’s the MenuActivity that makes the delay

public class MainActivity extends AppCompatActivity {

RelativeLayout _layer = null;
SharedPreferences _res;
Boolean _onFirstLoad=true,_bgMusic,_doubleBackToExitPressedOnce = false;
ImageView _musicBtnStop, _musicBtnStart, _about, _infoBtn;
SharedPreferences.Editor editor;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    if(_onFirstLoad)
    {
        loadAllContent();
        _onFirstLoad = false;
    }


    if (_bgMusic) {
        _musicBtnStart.setVisibility(View.INVISIBLE);

        BackGroundMusic.playMusic(); //starting
    } else {
        _musicBtnStart.setVisibility(View.VISIBLE);
        _musicBtnStop.setVisibility(View.INVISIBLE);
    }

    //Start Game Button
    _layer.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_UP) {
                callGameStart();
                return false;
            }
            return false;
        }
    });

    _musicBtnStop.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            callMusicStop();
        }
    });

    _musicBtnStart.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            callMusicStart();
        }
    });

    _about.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            callGameStart();
        }
    });

}

@Override
public void onBackPressed() {
    if (_doubleBackToExitPressedOnce) {
        super.onBackPressed();
        BackGroundMusic.quit();
        return;
    }

    _doubleBackToExitPressedOnce = true;
    Toast.makeText(this, "Please click BACK again to exit", Toast.LENGTH_SHORT).show();

    new Handler().postDelayed(new Runnable() {

        @Override
        public void run() {
            _doubleBackToExitPressedOnce=false;
        }
    }, 2000);
}

private void callGameStart() {
    Intent game = new Intent(this, GameInterface.class);
    startActivity(game);
}

private void callMusicStart() {
    BackGroundMusic.setMuted(false);

    _musicBtnStop.setVisibility(View.VISIBLE);
    _musicBtnStart.setVisibility(View.INVISIBLE);

    editor = _res.edit();
    editor.putBoolean("bgMusic", true);
    editor.apply();
}

private void callMusicStop() {
    BackGroundMusic.setMuted(true);

    _musicBtnStop.setVisibility(View.INVISIBLE);
    _musicBtnStart.setVisibility(View.VISIBLE);

    editor = _res.edit();
    editor.putBoolean("bgMusic", false);
    editor.apply();
}

private void loadAllContent() {
    BackGroundMusic.setParams(MainActivity.this, R.raw.background_sound); //setting the music file

    _layer = (RelativeLayout) findViewById((R.id.main));

    _res = getApplicationContext().getSharedPreferences("com.nvm.tapper.prefs.xml", 0); // load our xml database
    _bgMusic = _res.getBoolean("bgMusic", true);

    _musicBtnStop = (ImageView) findViewById(R.id.stopMusic);
    _musicBtnStart = (ImageView) findViewById(R.id.startMusic);

    _about = (ImageView) findViewById(R.id.about);
}