如何从片段中修复NPE?

时间:2015-02-27 18:21:29

标签: android service nullpointerexception fragment

来自我的应用程序中的片段我需要在myService.class中调用public void该状态。

实际上我需要对mediaPlayer的按钮执行操作,这些按钮将从片段调用。 第一次按btn_PlayResume时 - startService(); 第二次按下时 - 呼叫暂停(); 如果再次 - 只需调用play(),而不是再调用startService();

我有下一个代码:

@Override
    public void onClick(View v) {
        switch (isPlaying){
            case 0:
                btn_PlayResume.setImageResource(R.drawable.select_btn_pause);
                isPlaying=1; //is playing
                getActivity().startService(serviceIntent);
                break;
            case 1:
                btn_PlayResume.setImageResource(R.drawable.select_btn_play);
                isPlaying=2;// on pause
                myService.pauseAudio();
                break;
            case 2:
                btn_PlayResume.setImageResource(R.drawable.select_btn_pause);
                isPlaying=1; //is playing
                myServise.playAudio();
                break;
        }
    }

但是当我运行我的应用时,myService.pauseAudio();

中有NPE

所以,我该如何解决? 会很高兴任何帮助

1 个答案:

答案 0 :(得分:1)

使用LocalBroadcastManager而不是通过创建扩展pauseAudio()的类对象来调用playAudio()中的ServiceService方法。

使用LocalBroadcastManager发送含有不同操作的Intent来暂停并在服务中播放MediaPlayer

请参阅以下教程以使用LocalBroadcastManager

Java Android Program to Demonstrate Local BroadCast Manager