在Android/Java中,如何暂停当前循环而不暂停当前正在运行的线程?

在Android/Java中,如何暂停当前循环而不暂停当前正在运行的线程?,java,android,multithreading,mp4parser,Java,Android,Multithreading,Mp4parser,在我的android应用程序中,在我的片段中,我有一个while循环 startMs=0, endMs=30000; while(i<10){ new Mp4Composer(inputPath, destPath) .trim(startMs, endMs) .listener(new Mp4Composer.Listener() {

在我的android应用程序中,在我的片段中,我有一个while循环

startMs=0, endMs=30000;
while(i<10){
    new Mp4Composer(inputPath, destPath)
                                .trim(startMs, endMs)
                                .listener(new Mp4Composer.Listener() {
                                   @Overide
                                     public void onCompleted(){

                                        }
                                   }
                                .start();
startMs= endMs;
endMs+=30000;
i++
}
startMs=0,endMs=30000;

while(i使用处理程序而不是while循环

使用处理程序而不是while循环

handler mHandler=new handler();
Handler mHandler = new Handler();
int startMs=0, endMs=30000, i=0;
Runnable action = new Runnable(){
    @Override
    public void run() {
        new Mp4Composer(inputPath, destPath)
                .trim(startMs, endMs)
                .listener(new Mp4Composer.Listener() {
                    @Overide
                    public void onCompleted(){
                        goNext();
                    }
                }
                .start();
    }
};
void goNext(){
    if(i < 10) {
        startMs = endMs;
        endMs += 30000;
        i++;
        mHandler.postDelayed(action, 2000); //2 second
    }
}
int startMs=0,endMs=30000,i=0; Runnable action=new Runnable(){ @凌驾 公开募捐{ 新MP4计算机(输入路径、目的路径) .修剪(开始、结束) .listener(新的Mp4Composer.listener(){ @越过 未完成的公共无效(){ goNext(); } } .start(); } }; void goNext(){ 如果(i<10){ startMs=endMs; endMs+=30000; i++; mHandler.postDelayed(action,2000);//2秒 } }
Handler mHandler=new Handler();
int startMs=0,endMs=30000,i=0;
Runnable action=new Runnable(){
@凌驾
公开募捐{
新MP4计算机(输入路径、目的路径)
.修剪(开始、结束)
.listener(新的Mp4Composer.listener(){
@越过
未完成的公共无效(){
goNext();
}
}
.start();
}
};
void goNext(){
如果(i<10){
startMs=endMs;
endMs+=30000;
i++;
mHandler.postDelayed(action,2000);//2秒
}
}