七夜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(…)

    评论

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大