有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

菜单和游戏活动之间的java延迟

我正在做我自己的练习游戏。 一旦我的游戏变得越来越大,我注意到一些延迟,一旦主要活动是关于负载

因此,在阅读之后,一些线程会出现另一个活动(main),显示一个启动屏幕,直到加载真正的主(菜单)活动

这很好,但因为我的游戏是在另一个活动中,一旦我改变活动来玩游戏,然后按下后退按钮,甚至当我再次调用真正的主(菜单)活动时,我再次面临这种糟糕的延迟/延迟

总之,到目前为止,我有3项活动

1)加载启动屏幕然后调用菜单活动的主活动 2) 菜单活动,基本上提供启动设置和按钮 3) 游戏活动即游戏

我可以很容易地删除菜单活动,并将游戏与菜单活动混为一谈,通过图像/按钮的可见性处理菜单,但我想知道为什么未来的knowleque也会出现这种情况

这是造成延迟的原因

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);
}

共 (0) 个答案