Java 安卓-内部';对于';外循环前循环运行

Java 安卓-内部';对于';外循环前循环运行,java,android,multithreading,Java,Android,Multithreading,我有一个嵌套的for循环: for(int i = 0; shouldContinue && i < in.size(); i++){ final int l = i; getActivity().runOnUiThread(new Runnable() { @Override public void run() { sb.setSpan(fcs, 0, l, Spannable.SPAN_INCLU

我有一个嵌套的for循环:

for(int i = 0; shouldContinue && i < in.size(); i++){
    final int l = i;

    getActivity().runOnUiThread(new Runnable() {
        @Override
        public void run() {
            sb.setSpan(fcs, 0, l, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
            tv.setText(sb);
        }
    });

    for(int j = 0; shouldContinue && j < in.get(i).length(); j++){
        //some code
    }
}
for(int i=0;shouldContinue&&i
有两个线程与此代码关联。for循环工作的主(UI)线程和后台线程。问题是,内循环在外循环的tv.setText(sb)之前执行它的代码,我需要反过来执行。我认为这与它们是两个独立线程的事实有关,但我不确定在进入内部循环之前如何使
runOnUIThread
代码工作

如有任何帮助,我们将不胜感激。

您可以使用以下方法实现此目的:

for(int i=0;shouldContinue&&itv.setText(sb)语句不在外部for循环中。它位于另一个类的
run()
方法中,该类的声明恰好在词汇上由外部for循环包围。它不会作为循环的一部分执行。按照您使用它的方式,每次循环时,都会创建一个匿名内部类的新实例,并提交到
runOnUiThread(…)
。UI线程稍后将调用
run()
方法。多久以后?对不起,我不懂安卓,我不能回答这个问题。