2016-12-08 4 views
0

백그라운드 활동을 사용하여 내 앱의 배경 음악을 모든 활동에서 실행하고 있습니다! 문제는 앱을 실행할 때 제대로 작동하지만 기기를 닫을 때까지 음악을 계속 재생하면됩니다.Android 앱의 내 배경 음악 서비스가 앱을 종료해도 계속 재생됩니다.

여기에서 문제가 무엇이라고 생각하십니까?

/** 
* Created by Naira on 12/5/2016. 
*/ 

public class Background_music extends Service { 
private static final String TAG = null; 
MediaPlayer player; 
public IBinder onBind(Intent arg0) { 

    return null; 
} 
@Override 
public void onCreate() { 
    super.onCreate(); 
    player = MediaPlayer.create(this, R.raw.music); 
    player.setLooping(true); // Set looping 
    player.setVolume(50,50); 

} 
public int onStartCommand(Intent intent, int flags, int startId) { 


    player.start(); 

    return START_STICKY; 
} 

public void onStart(Intent intent, int startId) { 
    // TO DO 
} 
public IBinder onUnBind(Intent arg0) { 
    // TO DO Auto-generated method 
    return null; 
} 

public void onStop() { 


} 
public void onPause() { 


} 
@Override 
public void onDestroy() { 
    player.stop(); 
    player.release(); 
    player = null; 
} 

@Override 
public void onLowMemory() { 

} 
} 

여기 내 첫 번째 활동의 코드가 텐트로 실행 :

Intent svc=new Intent(this, Background_music.class); 
startService(svc); 

그리고 물론 나는 그것을 선언 않았다 여기

은 내 배경 서비스 코드 내 매니페스트 =) 미리 감사드립니다!

+0

왜 START_STICKY TAG를 사용하고 있습니까 – Noorul

+0

서비스가 실행되지 않아도 활동이 실행됩니다. 활동을 닫을 때 서비스를 중지하십시오. 그게 전부 – Noorul

+0

@Naira Hashim :'BindingService'를 사용하십시오! – AndiGeeky

답변

1

MainActivity의 onDestroy() 메서드에서 서비스를 중지해야합니다.

@Override 
    protected void onDestroy() { 
     super.onDestroy(); 
     if(isMyServiceRunning(Background_music.class)) 
     { 
      stopService(new Intent(this, Background_music.class)); 
     } 
    } 


private boolean isMyServiceRunning(Class<?> serviceClass) { 
     ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); 
     for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) { 
      if (serviceClass.getName().equals(service.service.getClassName())) { 
       return true; 
      } 
     } 
     return false; 
    } 

희망이 도움이 될 것입니다.

+0

대단히 고마워요! 그것은 나에게 많은 도움을주었습니다. = D (당신을 자극했습니다) –

+0

당신이 가장 환영합니다. 코딩 즐기기 –

관련 문제