You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio打地鼠游戏重启后Mole动画失效,求正确跳转方法

解决打地鼠游戏重启后动画失效问题

1. 修正页面跳转逻辑,销毁旧Game_Activity实例

当前跳转至Game_Over_Activity时,原Game_Activity仍留存于任务栈中,导致“再玩一次”时可能复用旧实例而非重新初始化。修改跳转代码,启动新页面后销毁当前Game_Activity:

public void change_to_game_over_activity() {
    Intent intent = new Intent(Game_Activity.this, Game_Over_Activity.class);
    startActivity(intent);
    finish(); // 销毁当前页面,避免栈中残留旧实例
}

2. 实现“再玩一次”的正确跳转逻辑

在Game_Over_Activity的按钮点击事件中,启动新的Game_Activity并销毁当前页面:

// 假设“再玩一次”按钮的点击处理方法
public void restartGame(View view) {
    Intent intent = new Intent(Game_Over_Activity.this, Game_Activity.class);
    startActivity(intent);
    finish(); // 清理当前页面,避免栈冗余
}

3. 调整动画的生命周期绑定逻辑

确保动画能在Activity重启时重新初始化并启动:

  • 将动画的资源加载、视图绑定放在onCreate()中,保证每次创建页面时都能重新初始化:
private Animation moleUpAnim;
private ImageView moleImageView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_game);
    
    moleImageView = findViewById(R.id.mole);
    moleUpAnim = AnimationUtils.loadAnimation(this, R.anim.mole_up);
    // 可添加动画结束监听,处理地鼠下落逻辑
    moleUpAnim.setAnimationListener(new Animation.AnimationListener() {
        @Override
        public void onAnimationStart(Animation animation) {}
        
        @Override
        public void onAnimationEnd(Animation animation) {
            // 此处启动地鼠向下的动画
        }
        
        @Override
        public void onAnimationRepeat(Animation animation) {}
    });
}
  • 将动画启动逻辑放在onResume()中,而非仅在onCreate()执行,确保页面恢复时动画能重启:
@Override
protected void onResume() {
    super.onResume();
    startMoleAnimation();
}

// 封装动画启动方法,方便调用
private void startMoleAnimation() {
    // 可添加随机延迟等游戏逻辑后启动动画
    moleImageView.startAnimation(moleUpAnim);
}

4. 销毁页面时清理动画资源

在Game_Activity的onDestroy()中停止动画并释放资源,避免内存泄漏影响新实例:

@Override
protected void onDestroy() {
    super.onDestroy();
    if (moleUpAnim != null) {
        moleUpAnim.cancel();
        moleUpAnim = null;
    }
    if (moleImageView != null) {
        moleImageView.clearAnimation();
    }
}

内容的提问来源于stack exchange,提问作者Gensik Rubio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 15:43:31