其他分享
首页 > 其他分享> > 我如何暂停和恢复For循环?

我如何暂停和恢复For循环?

作者:互联网

我是Android的菜鸟,我正尝试从arrayArray字符串循环文本并将其显示在textswitcher中.我希望文本每两秒钟更改一次.我用this SO问题作为指导,用按钮切换文本没有问题.但是,当我尝试使用for循环以2秒的延迟循环文本时,它仅显示arrayList中的第一个文本.如何使循环连续执行并暂停?任何帮助是极大的赞赏.

我的代码;

private void updateCounter()
{   

    try{
    for (int i=0; i< CoinShowReader.tickercontent.size(); i++){                             

        mHandler.postDelayed(new Runnable() { 
             public void run() { 
                m_switcher.setText((CoinShowReader.tickercontent.get(CoinShowReader.m_counter)));               
                CoinShowReader.m_counter++;
             } 
        }, 2000);

        }

    }catch(Exception e){
        e.printStackTrace();    
    }
}  

解决方法:

删除循环,您不需要它,只需在处理程序内部安排另一个可运行的花药,如下所示:

void updateTextView(){
        m_switcher.setText((CoinShowReader.tickercontent.get(CoinShowReader.m_counter)));               
        CoinShowReader.m_counter++;

            mHandler.postDelayed(new Runnable() { 
                             public void run() { 
                               updateTextView(); 
        } } ,2000);  }
    }

这样,每次对updateTextView()的调用都会安排下一个调用,依此类推…

注意:别忘了插入触发器来停止该行为,因为它是无限的

标签:postdelayed,multithreading,loops,wait,android
来源: https://codeday.me/bug/20191031/1974680.html