Метод IntentService onDestroy вызывается сразу после onHandleIntent

У меня есть IntentService что я использую для записи аудио через AudioRecord в моем приложении. в onHandleIntent метод, я называю .getInstance отдельного класса, который я использовал для обработки записи, а затем вызвать пару методов этого класса.

Однако, как только intentService запускается, его onDestroy метод вызывается, и запись останавливается. В классе, который создается в onHandleIntentзвук все еще записывается, пока onDestroy вызывается. Так уверенно onDestroy не должен быть вызван, пока запись не закончена.

Если бы кто-то мог предложить предложение относительно того, почему он это делает, это было бы очень ценно.

Код для моего IntentService ниже:

public class RecordService extends IntentService {
    public File directory;
    AudioRecord audioRecord;
    int sampleRate = 44100;
    int channelConfiguration = AudioFormat.CHANNEL_IN_MONO;
    int audioEncoding = AudioFormat.ENCODING_PCM_16BIT;
    File file;
    short channels = 1;
    int bitsPerSample = 16;
    public RecordService() {
        super("Record");
    }
    ExtAudioRecorder extAudioRecord;

    @Override
    protected void onHandleIntent(Intent intent) {

        Log.v("Record", "Record called");
        extAudioRecord = ExtAudioRecorder.getInstanse(false);
        extAudioRecord.reset();
        extAudioRecord.setOutputFile(getOutputFile("RecV2").toString());
        extAudioRecord.prepare();

        extAudioRecord.start();
        //record();
    }
    public void onDestroy(){
        extAudioRecord.stop();
        //audioRecord.stop();
        Log.v("Record", "onDestroy called, Record stopped");

    }

1 ответ

Я верю extAudioRecord.start(); является неблокирующим, то есть сразу возвращается onHandleIntent(), IntentService прекращается вскоре после вызова onDestroy,

Другие вопросы по тегам