使用以下代码:
//==============SUBMITTING ANSWERS=======================================
function showSubmit() {
document.getElementById('submitBut').innerHTML =
'<button onclick="submitLetters()">SUBMIT LETTERS</button>';
var arrayOfTds = document.getElementsByClassName('answerLetter');
console.log(arrayOfTds);
}
//==============CREATING GRID OF RANDOM LETTERS====================
var cols = 20;
var rows = 10;
var html = "";
for(var i = 0; i <= rows; i++) {
html += '<tr>';
for(var h= 0; h <= cols; h++) {
var characters = 'ABCDEFGHIJKLMNOPQRSTUVXYZ';
var random = parseInt(Math.random()*characters.length);
var letter = characters.charAt(random); //returning random letter
html += '<td onclick="showSubmit()">' + letter + '</td>';
}
html += '</tr>';
}
document.getElementById('wsBox').innerHTML += html;
一段时间后(不是确切的情况)我有以下错误:
java.lang.RuntimeException:android.os.Looper.prepare每个线程只能创建一个Looper
有谁知道我哪里出错了?
答案 0 :(得分:0)
我认为你应该看看这个以了解lopper:What is the purpose of Looper and how to use it?
然后,看一下:java.lang.RuntimeException: Only one Looper may be created per thread找到问题的答案。
希望有所帮助!
答案 1 :(得分:0)
请注意:每个Handler
都捆绑了一个Looper
,每个帖子只能创建一个Looper
。因此,您可以通过Handler
的构造函数创建Handler(Looper)
实例。使用Handler()
创建一个实例时,默认Looper
来自当前Activity
运行的主UI线程。
对于上面的代码,您在showDialog(String message)
中定义了Activity
,对吧?因此,这意味着将在主UI线程上调用此方法。因此,当您在Handler
内Handler()
的构造函数创建showDialog(String message)
实例时,主UI线程中的Looper
将与默认情况下为Handler
个实例。这意味着Looper.prepare();
是多余的,然后删除Looper.prepare();
将解决您的问题。