java - 媒体播放器和 finish() 方法

标签 java android

我刚刚在 android 中测试媒体播放器,我在 onCreate 方法中启动了一个流,并且我有一个调用 finish() 方法的按钮。单击按钮后,即使 Activity 已关闭,我仍然可以听到流正在播放,我想知道这是否是某种泄漏,我必须在调用 finish() 方法之前先停止播放器,或者如果 finish()该方法实际上并没有完全杀死应用程序以释放资源。感谢您的阅读

            public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Button add_function,exit_btn;   
            add_function = (Button) findViewById(R.id.view_chat);
            exit_btn = (Button) findViewById(R.id.exit_btn);


            MediaPlayer mp = new MediaPlayer();
            String URL_OF_FILE = "http://stream.radiosai.net:8002/";
    try {
        mp.setDataSource(URL_OF_FILE);
         mp.prepare();
    } catch (IllegalArgumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (SecurityException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IllegalStateException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

            mp.start();



        exit_btn.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                // TODO Auto-generated method stub
                finish();
            }
        });
             }// EOF ONCREATE

最佳答案

调用finish() 不会终止应用程序,它只会销毁您正在完成的当前Activity。虽然我认为完成 Activity 会停止 MediaPlayer,但在这种情况下您可能应该做的是覆盖 onDestroy(),并释放您的 MediaPlayer > 对象存在。例如:

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

关于java - 媒体播放器和 finish() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12462069/

相关文章:

java - 从客户端到服务器的多个 channel 创建

java - Spring Boot 中的多个 DataSource 和 JdbcTemplate (> 1.1.0)

java - 带有 Android 10 的小米上 TextInputLayout 中的 NullPointerException

java - 运行 jar 后继续在控制台执行

java - 如何在嵌套集合中添加内部映射?

android - 无法在 RecyclerView 上显示图像

java - 无法在 SKMap 中设置流量模式

java - 如何将文件存储在我的 Android 模拟设备上,然后从我的程序中访问它?

javascript - 剪贴板 API 调用抛出 NotAllowedError 而不调用 onPermissionRequest()

android - map fragment 在 Android 中不起作用