我写了这段代码来尝试Android上的线程,但它不起作用.
@OverrIDe public voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.main); Thread t = new Thread() { @OverrIDe public voID run() { int i = 0; while(true) { i += 5; if(i == 1000000) break; } } }; t.run(); }
我有一些GUI,当线程工作时(i <1000000),GUI冻结.但是当线程完成时(i == 1000000)一切正常.
怎么了?
// 对不起我的英语不好
解决方法:
你正在调用t.run(),这意味着你在没有启动新线程的情况下运行UI线程中的所有代码.
您应该调用t.start(),它将启动一个新线程并在该新线程中的run方法中执行代码.
(我还建议实现Runnable,然后将Runnable传递给新的Thread构造函数,而不是覆盖run,就像关注点分离一样.它不会改变这里的行为,但它是一种更清晰的思考方式IMO).
总结以上是内存溢出为你收集整理的android – 为什么这个线程不起作用?全部内容,希望文章能够帮你解决android – 为什么这个线程不起作用?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)