У меня есть IntentService
, который я использую для записи звука через AudioRecord
в моем приложении. В методе onHandleIntent
я вызываю .getInstance
отдельного класса, который я использовал для обработки записи, а затем вызываю несколько методов этого класса.Метод onDestroy IntentService, вызываемый прямо после onHandleIntent
Однако, как только начинается намерение, начинается его метод 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");
}
Вы так поняли? – Dan