如果您真的希望在您的应用程序进入后台并且在 Android 屏幕上显示其他内容时播放音乐,那么您可以执行另一个问题的提问者使用的解决方案:启动一个播放音乐的服务.
如果您希望背景音乐只播放您的应用程序在前台,那么您可以走 AsyncTask 的路线。如果你这样做,那么你只需要一个 AsyncTask。它的生命周期独立于 Activity 生命周期。请记住,onPreExecute 和 onPostExecute 回调将在处理不同 Activity 的 UI 线程上调用。
请记住,如果您使用 AsyncTask 播放背景音乐,则不能同时运行其他 AsyncTask,因为它们都默认共享同一个后台线程。
编辑:既然您需要与背景音乐交互,那么您可能应该创建一个服务并使用 Intents 与它进行通信。
我不会写关于如何制作服务的教程,因为那里已经有很多了。您可以快速搜索并挑选一些东西。
在该服务内部,您想要创建一个 LocalBroadcastManager。
myLocalManager = LocalBroadcastManager.getInstance(getApplicationContext());
向它注册一个 BroadcastReceiver 和一个 IntentFilter。
让 BroadcastReceiver 检查它获取的有关您希望背景音乐做什么的信息的意图,然后执行它。最简单的方法是在 Activity 中添加额外内容,然后在 Service 中取出。
让 IntentFilter 类似于“my.app.package.BackgroundMusic”以避免名称冲突。
然后,让您的各种活动获取它们自己的 LocalBroadcastManager 实例,然后调用 sendBroadcast 来告诉服务该做什么。当您构建您的意图时,您希望使用与您用来制作 IntentFilter 的名称相同的名称,以便它会触发您编写的 BroadcastReceiver。