Служба останавливается после закрытия действия, в котором она создана?

#android #android-service

#Android #android-сервис

Вопрос:

Я создал Service и начал использовать Activity Button щелчок, но Service после закрытия останавливается Activity . Итак, что мне делать, чтобы продолжать запускать Service без остановки?

MainActivity.java

 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
  }

public void startService(View v){
    Intent i = new Intent(this, NotStickyService.class);
    startService(i);
}


 public void stopService(View v){
    Intent i = new Intent(this, NotStickyService.class);
    stopService(i);
}
  

Service.java

 public class NotStickyService extends Service{

    MediaPlayer mp;


    @Override
    public void onCreate() {
        showToast("onCreate");
        super.onCreate(); 

    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        showToast("onStart");
        mp = new MediaPlayer();     
    AssetFileDescriptor descriptor;
    descriptor = getAssets().openFd("msg.mp3");
        mp.setDataSource(descriptor.getFileDescriptor(),     
        descriptor.getStartOffset(),descriptor.getLength());                                                   
            descriptor.close();
            mp.prepare();
            mp.start();
        return Service.START_STICKY;
    }

    @Override
    public void onDestroy() {
        super.onDestroy();    
        showToast("onDestroy");        
    }

    private void showToast(String message){
        Toast toast = Toast.makeText(this, message, Toast.LENGTH_SHORT);
        toast.show();
    }
}
  

Комментарии:

1. Можете ли вы подробно объяснить свою проблему? существует ли только одно действие, которое закрывается после запуска службы?

2. Я запускаю службу с помощью действия, но когда я закрываю действие, служба также останавливается. И я возвращаю START_STICKY из «onStartCommand()».

3. Убедитесь, что вы запускаете службу, а не просто привязываете ее. Связанные службы завершают работу, когда к ним больше не привязаны действия.

4. опубликуйте свой код, чтобы мы могли помочь