如何从片段中修复 NPE?
how to fix NPE from fragment?
从我应用程序中的片段我需要调用 public 使 myService.class
中的状态无效。
事实上,我需要为 mediaPlayer 的按钮执行操作,这将从片段中调用。
第一次按 btn_PlayResume
- 它 startService();
第二次按下时 - 调用 pause();
如果再次调用 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
那么,我该如何解决呢?
会很高兴任何帮助
通过创建扩展 Service
的 class 对象,使用 LocalBroadcastManager
而不是从 Service
调用 pauseAudio()
和 playAudio()
方法。
使用 LocalBroadcastManager
从 Activity 发送具有不同操作的 Intent 以在服务中暂停和播放 MediaPlayer
。
请参阅以下教程以使用 LocalBroadcastManager
:
从我应用程序中的片段我需要调用 public 使 myService.class
中的状态无效。
事实上,我需要为 mediaPlayer 的按钮执行操作,这将从片段中调用。
第一次按 btn_PlayResume
- 它 startService();
第二次按下时 - 调用 pause();
如果再次调用 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();
那么,我该如何解决呢? 会很高兴任何帮助
通过创建扩展 Service
的 class 对象,使用 LocalBroadcastManager
而不是从 Service
调用 pauseAudio()
和 playAudio()
方法。
使用 LocalBroadcastManager
从 Activity 发送具有不同操作的 Intent 以在服务中暂停和播放 MediaPlayer
。
请参阅以下教程以使用 LocalBroadcastManager
: