【发布时间】:2015-10-25 10:54:25
【问题描述】:
当应用程序启动声音开始时以及当用户单击菜单中的任何button 时,我正在使用以下service 在我的应用程序中播放声音停止。但我面临一些问题。就像用户打开应用程序并且没有在应用程序菜单中按任何 button 时,他在移动声音上按菜单 button 不会停止。如果应用程序启动和呼叫或消息在移动设备上仍然会在后台播放。如何在这两个事件上停止service?
服务代码-
public class PlayAudio extends Service{
private static final String LOGCAT = null;
MediaPlayer objPlayer;
public void onCreate(){
super.onCreate();
Log.d(LOGCAT, "Service Started!");
objPlayer = MediaPlayer.create(this, R.raw.test);
}
public int onStartCommand(Intent intent, int flags, int startId){
objPlayer.start();
Log.d(LOGCAT, "Media Player started!");
if(objPlayer.isLooping() != true){
Log.d(LOGCAT, "Problem in Playing Audio");
}
return 1;
}
public void onStop(){
objPlayer.stop();
objPlayer.release();
}
public void onPause(){
objPlayer.stop();
objPlayer.release();
}
public void onDestroy(){
objPlayer.stop();
objPlayer.release();
}
@Override
public IBinder onBind(Intent objIndent) {
return null;
}
}
当我的应用程序从启动活动启动时,我会启动音频,例如-
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
objIntent = new Intent(this, PlayAudio.class);
startService(objIntent);
new Handler().postDelayed(csRunnable2, 5000);
}
然后在主菜单活动中,当用户按下任何按钮时停止它-
hist = (Button) findViewById(R.id.hist);
hist.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
objIntent = new Intent(MainActivity.this, PlayAudio.class);
stopService(objIntent);
startActivity(new Intent(MainActivity.this, History.class));
finish();
请告诉我我必须在哪里进行更改?
【问题讨论】:
-
Stopself() 方法调用
-
您也应该在单击按钮时显式调用它。你在哪里做的?这是您发布的完整代码吗?