2014-11-12 4 views
1

У меня есть 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"); 

    } 
+0

Вы так поняли? – Dan

ответ

0

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

+0

Как сделать блокировку кода – Dan

+0

https://stackoverflow.com/questions/4639853/sync-version-of-async-method – GroovyDotCom

Смежные вопросы