android - 如何将诸如 R.raw.twelve_chimes 之类的值从 Activity 传递到服务?

标签 android service android-activity parameter-passing

如果我在 res 的原始文件夹中有一个名为 twelve_chimes.mp3 的 mp3 文件,你能告诉我使用什么编码将它从我的 Activity 传递到服务以及如何接收传递的信息吗?

目前我正在使用此代码调用该服务:

startService(new Intent(this, MyService.class));

在服务中,这是我播放媒体文件的方式:

player = MediaPlayer.create(this, R.raw.twelve_chimes);
player.setLooping(false);
player.start();

如果无法传递 R.raw.twelve_chimes,是否可以将其作为传入的字符串来完成,并以某种方式使用该字符串在服务中播放?

谢谢。

真的, 埃马德

最佳答案

如果服务与 Activity 在同一个 Android 包中,那么服务应该可以使用 R.raw.twelve_chimes:您应该能够在 Intent 中将其作为 Integer 传递:

Intent i = new Intent(this, MyService.class);
i.putExtra("OPTION", R.raw.twelve_chimes);

并在服务的 onStartCommand 中:

player = MediaPlayer.create(this, intent.getIntExtra("OPTION"));
player.setLooping(false);
player.start();

可能需要一些更改来处理您调用 player 的位置,但这或多或少应该可行。

关于android - 如何将诸如 R.raw.twelve_chimes 之类的值从 Activity 传递到服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7381099/

相关文章:

android - AndroidManifest.xml 中未指定启动 Activity ?

android - Android 开发时在 eclipse 中合并 Java 和 DDMS 透视图

android - 如何通过 ViewModel 从 Fragment 观察 Repository LiveData

android - TextView 中的多个点击跨度

java - 我的 Activity 在未输入 OnSaveInstanceState 句柄的情况下关闭

android - 需要游戏结束 Activity

android - 实现推送通知的推荐方式

java - 关于如何创建 java web 服务并部署到 mac web 服务器的简单教程?

Android Couchdb - libcouch 和 IPC Aidl 服务

java - 使用 Java 创建 Web 服务客户端时出错