首页 > 解决方案 > 停止从 BroadcastReceiver 启动的 Android 媒体播放器循环

问题描述

我有一个BroadcastReceiver启动一个MediaPlayer并循环播放声音。我的问题是,当应用程序在后台并触发接收器时,播放器会播放声音。现在我想在我再次打开我的应用程序时停止播放器。我试图向 Activity 中的接收者发送消息,onResume但播放器的实例为空。启动/重新打开应用程序时如何停止播放器?

标签: androidbroadcastreceiverandroid-mediaplayerandroid-lifecycle

解决方案


尝试从 Service 控制 MediaPlayer 并使用 Context.startService() 和 Context.stopService() 并在其生命周期中处理 MediaPlayer

使用这个意图:

final Intent mpServiceIntent = new Intent(context, MPService.class);

当您的 BroadcastReceiver 被触发时,请使用:

startService(mpServiceIntent);

当调用 Activity.onCreate() 时使用:

stopService(mpServiceIntent);

推荐阅读