Java IntentService的onDestroy方法在OnHandleContent之后直接被调用

Java IntentService的onDestroy方法在OnHandleContent之后直接被调用,java,android,intentservice,ondestroy,Java,Android,Intentservice,Ondestroy,我有一个IntentService,我正在使用它通过我的应用程序中的AudioRecord录制音频。 在onHandleIntent方法中,我调用一个单独类的.getInstance,该类用于处理录制,然后调用该类的两个方法 然而,一旦intentService启动,它的onDestroy方法就会被调用,记录就会停止。 在OnHandleContent中实例化的类中,音频仍在录制,直到调用onDestroy为止。 因此,在录音结束之前,onDestroy肯定不会被调用 如果有人能提供一个建议,说

我有一个IntentService,我正在使用它通过我的应用程序中的AudioRecord录制音频。 在onHandleIntent方法中,我调用一个单独类的.getInstance,该类用于处理录制,然后调用该类的两个方法

然而,一旦intentService启动,它的onDestroy方法就会被调用,记录就会停止。 在OnHandleContent中实例化的类中,音频仍在录制,直到调用onDestroy为止。 因此,在录音结束之前,onDestroy肯定不会被调用

如果有人能提供一个建议,说明为什么要这样做,我们将不胜感激

my 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");

    }

我相信extAudioRecord.start;非阻塞意味着它会立即返回并退出onHandleIntent。IntentService在调用onDestroy后很快就会终止。

那么您知道了吗?