Java,这是一个无限循环?

时间:2013-11-26 14:04:09

标签: java android

好的,我正在查看下面的代码片段。我看到正在创建一个类实例:recorder = new AudioRecord(...然后我看到我们已经在recorder.startRecording();内部的方法的调用不是一个无限循环。这怎么可能是一段代码呢?

    private void startRecording(){//<--** this method is called from below **

                recorder = new AudioRecord(MediaRecorder.AudioSource.MIC,
RECORDER_SAMPLERATE, RECORDER_CHANNELS,RECORDER_AUDIO_ENCODING, bufferSize);

                recorder.startRecording();//<--already in this method, endless loop???

                isRecording = true;               
                recordingThread = new Thread(new Runnable() {                       
                        @Override
                        public void run() {
                                writeAudioDataToFile();
                        }
                },"AudioRecorder Thread");              
                recordingThread.start();
        }

2 个答案:

答案 0 :(得分:3)

正如@ chuthan20指出并引用given code,上面的方法来自RecorderActivity,而它正在调用AudioRecord中的方法(同名),所以不,不是递归的,而不是无限循环,只是发生了两个类具有相同名称的方法。

public class RecorderActivity extends Activity {
  ...     
  private AudioRecord recorder = null;
  ...
}

答案 1 :(得分:0)

查看完整代码(上下文就是一切!),不,这不是一个无限循环。 Activity的本地(私有)startRecording方法正在创建AudioRecord类的实例并调用该对象的startRecording方法。两个不同的类。