七夜style 2016-04-26 15:47 采纳率: 14.3%
浏览 3798
已结题

我动态注册的广播接收器接收不到广播,一下是我的代码

/**
* 此方法通过传递列表点击位置来获取mp3Info对象
*
* @param listPosition
*/
public void playMusic(int listPosition) {
if (favmusicInfos != null) {
MusicInfo musicInfo = favmusicInfos.get(listPosition);

Intent intent = new Intent();
System.out.println("---------------------"+musicInfo);
intent.setAction("PLAY_MUSIC_FROME_FAVORITE");
intent.putExtra("musicInfo", musicInfo);
intent.putExtra("listPosition", listPosition);
sendBroadcast(intent);
}

 protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub


        super.onCreate(savedInstanceState);
        setContentView(R.layout.local_music_pop);

        mMusicList = (ListView)findViewById(R.id.list_view);
        //musicInfos = customeApp.getPlayingMusicInfos();
        playingAdapter = new PlayingListAdapter(this,musicInfos);
        if(musicInfos != null){
            mMusicList.setAdapter(playingAdapter);
        }
        playerReceiver = new PlayerReceiver();
        //IntentFilter filter = new IntentFilter();
        //registerReceiver(playerReceiver, filter);
        registerReceiver();
        //unregisterReceiver(playerReceiver);
        System.out.println("<<<---------------->>>");
    }


    private void registerReceiver() {
        //定义和注册广播接收器
        //playerReceiver = new PlayerReceiver();
        IntentFilter filter = new IntentFilter();
        registerReceiver(playerReceiver, filter);
        System.out.println("(((---------------->>>");
    }
    public class PlayerReceiver extends BroadcastReceiver {

        @Override
        public void onReceive(Context context, Intent intent) {
            // TODO Auto-generated method stub
            //intent = getIntent();
            System.out.println("(((----------------)))");
            String action = intent.getAction();
            System.out.println(action);
            if(action.equals("PLAY_MUSIC_FROM_LOCAL")){
                if(musicInfos == null){
                    musicInfos = customeApp.getlocalMusicInfos();
                    System.out.println("ping---------------)"+musicInfos);
                    mMusicList.setAdapter(playingAdapter);
                    int i = intent.getIntExtra("listPosition", -1);
                    musicInfo = musicInfos.get(i);
                    intent.putExtra("musicInfo",musicInfo );
                    intent.setClass(PlayingListActivity.this, Service1.class);
                    startService(intent);
                }
            }else if(action.equals("PLAY_MUSIC_FROME_FAVORITE")){
                if(musicInfos == null){
                    musicInfos = customeApp.getFavoriteMusicInfos();
                    System.out.println("ping---------------)"+musicInfos);
                    mMusicList.setAdapter(playingAdapter);
                    int i = intent.getIntExtra("listPosition", -1);

                    musicInfo = musicInfos.get(i);
                    intent.putExtra("musicInfo",musicInfo );
                    intent.setClass(PlayingListActivity.this, Service1.class);
                    startService(intent);
                }
            }
        }

    }
  • 写回答

3条回答

  • 孙晓宇 2016-04-27 02:14
    关注

    在你代码的26行是初始化了filter,但是这之后你没有为filter添加action,应该在之后filter.addAction(…)

    评论

报告相同问题?

悬赏问题

  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题