【问题标题】:App is crashing because of animation应用程序因动画而崩溃
【发布时间】:2013-10-27 16:05:27
【问题描述】:

我在我的应用程序中使用动画,每当活动开始时,我将 contentview 设置为该动画类,但每当用户返回时,它只会在我使用动画的地方崩溃。你能告诉我如何保存我的应用程序从这次崩溃

    import android.app.Activity;

import android.media.MediaPlayer;
import android.os.Bundle;

public class Ultimate_bomb extends Activity {
    FireworkLayout my;
    MediaPlayer sound;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        my = new Animation(this);
        setContentView(my);
        sound = MediaPlayer.create(Ultimate_bomb.this, R.raw.ultimate_bomb);
        sound.start();
    }

    @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();

        sound.release();
        finish();
    }
}

【问题讨论】:

  • 动画不能是android的类。您不能将动画设置为活动的 contentView。
  • 请阅读文档并遵循一些教程。您不能将ContentView 设置为动画。
  • @aegean Animation 不是我的课我已经改了名字,这样你就可以理解那是动画课
  • @Simon 先生,我使用 setContentView 对其工作正常进行动画处理,但是当用户单击返回时它崩溃了。先生,我是初学者,如何实现动画,以便用户可以在播放音乐的屏幕上看到它在后台..我很抱歉,我的脑子不够用了,所以无法阅读文档我非常紧张,因为我已经启动了我的应用程序并且用户正面临这个问题..请告诉解决方案先生
  • @Pushendra 如果您正在寻找解决方案,您必须分享您的动画课程。我绝对确定它不是一个 android 类。顺便说一句,请尝试在 onPause 删除 finish() 的代码。

标签: android performance android-fragments


【解决方案1】:

我猜你是在动画类中播放动画或启动 asyncTask。当您按下后退按钮时,您的活动被破坏,但您的动画类中的动画或任务尝试使用附加到上下文的上下文或视图(可能是 imageView)来做某事。要解决您的问题,您必须在 Activity 的 onPause 方法处停止动画或在 Animation 类中设置标志。

编辑:我查看了您使用的 FireworkLayout 类(通过您共享的链接)。我看到有一个名为FireworkLayout 的类,在这个类中我们有一个GameThread。如果AnimateStateasRunning,则该线程会绘制。当您的活动进入暂停状态时,您必须将其设置为 asPause

现在好了,我开悟了,我猜你也是:) 将此方法添加到 FireworkLayout 类并在您的 Activity 进入 onPause 状态时调用 onActivityPaused。

public void onActivityPaused() {
    if(thread != null) {
        thread.pause();
    }
}

顺便说一句,您可能需要一个 resume 方法。因此,将此方法添加到 FireworkLayout 类并在您的活动处于 onResume 状态时调用它。

public void onActivityResumed() {
    if(thread != null) {
        thread.unpause();
    }
}

编辑后调用示例;

@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    my.onActivityPaused();
    ...

}

【讨论】:

  • 嘿,先生,我如何在暂停时停止动画,您可以在代码中显示或在动画类中设置标志,然后在这里等待是我的动画类的代码
  • 先生,我无法在评论中显示代码,你能告诉我其他方式我可以显示我的代码吗
  • stackoverflow.com/questions/5408204/… 先生,请参阅此帖子上的代码
  • 我查看了您使用的 FireworkLayout 并编辑了我的答案。希望对您有所帮助。
  • 先生,请稍等,我将添加它
猜你喜欢
  • 2023-03-14
  • 2019-12-26
  • 2012-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-16
相关资源
最近更新 更多