java - 单击设备上的后退按钮时如何避免媒体播放器崩溃?

标签 java android

我的 Android Studio 项目中有一个媒体播放器。在连接的手机上单击后退按钮时,它会崩溃。这是我从 Logcat 中收集到的错误:“无法销毁 Activity {com.example.proj/com.example.proj.RadioActivity}:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法 'void android.media.MediaPlayer.stop()'”

这是相关的 fragment :

@Override
public void onDestroy() {
    super.onDestroy();
    stop();
}

public void onCompletion(MediaPlayer mp) {
    stop();
}

我发现,如果我单击“播放”,然后单击后退按钮,应用程序不会崩溃,这表明即使没有媒体正在播放,播放也不是空对象引用。

如何编写一个条件,如果单击后退按钮并且 MediaPlayer 未播放,则不销毁播放器/应用程序?我没有引用代码中的按钮。

最佳答案

@Override
protected void onDestroy() {
    super.onDestroy();
    if (mediaPlayer != null) {
        mediaPlayer.stop();
    }
}

关于java - 单击设备上的后退按钮时如何避免媒体播放器崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47654968/

相关文章:

c# - 在Unity3D中读取NFC标签

java - Spring Cloud Stream Test 在消息负载中硬编码 "Hello World"

android - 在防火墙后接收回复

java - 当我将它传递给 asyncTask 时,Android Location 对象返回 null

java - 你如何处理不同的 Java IDE 和 svn?

java - 使用测试帐户时无法处理您的订单错误

android - 我如何为我的 android 应用程序设计漂亮的 UI

java - 更新cloudera quickstart vm以使用java7

java - 字节从文件中读取错误?

java - 如何在运行时根据构造函数参数在父类(super class)中创建子类对象(在Java中)