Метод 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
,