android - 从服务更新搜索栏

标签 android service seekbar audio-player android-music-player

我正在构建一个音乐播放器,我需要为歌曲添加一个搜索栏。我在网上查过,但大多数结果都是针对 Activity 中的媒体播放器,而不是服务。我不熟悉使用媒体播放器,因此非常感谢任何详细的结果。

最佳答案

您可以使用广播接收器将数据从服务发送到 Activity 。

在服务中添加下面的方法,当你想更新SeekBar时调用这个方法。

public static void publishResult(Context context, int percentage){
    Intent intent = new Intent("Broadcast");
    intent.putExtra("INTENT_TYPE", "SEEKBAR_RESULT");
    intent.putExtra("PERCENTAGE", 10);
    LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
}

在 Activity 中添加以下代码以接收广播消息。

 @Override
    public void onResume() {
        super.onResume();
        //Register Broadcast receiver 
        LocalBroadcastManager.getInstance(getActivity()).registerReceiver(mBroadcastReceiver, new IntentFilter("Broadcast"));
    }

    @Override
    public void onPause() {
        super.onPause();
        //Unregister Broadcast receiver
        LocalBroadcastManager.getInstance(getActivity()).unregisterReceiver(mBroadcastReceiver);
    }

    private BroadcastReceiver mBroadcastReceiver= new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String intentType = intent.getStringExtra("INTENT_TYPE");
            if(intentType.equalsIgnoreCase("SEEKBAR_RESULT")){
                int percentage = intent.getIntExtra("PERCENTAGE");
            }
        }
    };

有关 LocalBroadcastManager 的更多详细信息,请参阅:http://developer.android.com/reference/android/support/v4/content/LocalBroadcastManager.html

关于android - 从服务更新搜索栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33200922/

相关文章:

java - Android:显示进度条对话框时出现问题?

java - 如何停止/等待线程,然后稍后恢复/重新启动它

c# - 服务的事件日志抛出错误,指出未设置源

java - 无法解析符号 'OnSeekBarChangeListener'

java - Android自定义对话框seekbar

java - 更新了表,但没有返回正确的值

java - 为什么在 Android 上使用加载程序的 ListView 与 fts3 表为空?

android - 如何在 Android 的纯文本文件中执行查询?

c# - 控制台应用程序与 Windows 服务

java - 改进通用 SeekBar 示例