gpt4 book ai didi

java - 线程运行时按钮 onClick() 不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 10:25:10 24 4
gpt4 key购买 nike

我正在努力设置 TextView 的文本,因此我现在尝试通过按钮推送来完成此操作,但是当我从按钮 readWeight 启动线程时,按钮 updateButton 不起作用。

这是我的两个按钮onClick方法:

readWeight.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {

inputWindow.setText("helloooooooo worldddddd");
//connector.run();
System.out.println("********** PRINTING **********");

// readWeight.setVisibility(View.INVISIBLE);
}
});
updateButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
System.out.println("!!!!!!!!!!!!!!!"+weight+"!!!!!!!!!!!!!!!");
inputWindow.setText(weight);
}
});

这是我启动线程的方法,该方法位于另一个类中:

public void run() {
new Handler().post(new Runnable() {

@Override
public void run() {
// Always cancel discovery because it will slow down a connection
//Log.d("workkkkkk","$$$$$$$$$$$$$$$$****** printingggggg ******$$$$$$$$$$$$$$$$");
int counter = 0;
while (true) {
counter++;
try {
output = "";
//read the data from socket stream
//mmInStream != null && counter%10000000 == 1
if (mmInStream != null) {
mmInStream.read(buffer);
for (byte b : buffer) {
char c = (char) b;
if (c >= ' ' && c < 'z') {
// System.out.print(c);
output += c;
}

}
System.out.println();
Intent intent = new Intent();
intent.setAction("com.curie.WEIGHT_RECEIVED");
intent.putExtra("Output",output);

if (counter % 10 == 0) {

System.out.println(counter);

//InputActivity.setInputWindowText(output);
LocalBroadcastManager.getInstance(InputActivity.getContext()).sendBroadcastSync(intent);

}


}
// Send the obtained bytes to the UI Activity
} catch (IOException e) {
//an exception here marks connection loss
//send message to UI Activity
break;
}
}
}

任何帮助将不胜感激!谢谢。

最佳答案

当您使用时

Handler.post()

它在UI线程中运行,所以如果它是长 Action ,它会阻塞所有界面。为了避免这种情况,您应该在另一个线程中运行它。如果您不想使用复杂的东西,可以尝试以下操作:

mHandler = new Handler();

new Thread(new Runnable() {
@Override
public void run () {
mHandler.post(new Runnable() {
@Override
public void run () {
// place your action here
}
});
}
}).start();

关于java - 线程运行时按钮 onClick() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50627856/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com