我是 android 新手。我正在构建应用程序以通过 WiFi 监听传入消息,它可以很好地监听和更新 UI,但是当我尝试退出时,它不会响应后退按钮按下,直到它在缓冲区中接收到消息。据我了解,按钮在 UI 线程上,而 Runnable 是一个单独的线程,这就是为什么它不会立即响应按钮按下,因为它在单独的线程上很忙。那么我如何从后退按钮按下中断“Runnable”?
任何帮助将非常感激。
public Runnable mUpdate = new Runnable() {
public void run() {
try {
line = in.readLine();
newtext.setText(line);
mHandler.post(this);
Log.i("RESPONSE FROM SERVER", "S: Received Message: '" +line+ "'");
//onBackPressed();
//threadRunning = true;
} catch (IOException e) {
// TODO Auto-generated catch block
Log.e("Error" , "Something Happen");
}
}
};
编辑:对不起,我应该早点发布这个,所以在“onCreate”中,我使用处理程序来调用“mUpdate”。打电话的方式是否正确?
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
intent = getIntent();
setContentView(R.layout.activity_display_message);
message = intent.getStringArrayExtra(MainActivity.EXTRA_MESSAGE);
newtext = (TextView)findViewById(R.id.TextView1);
userName = message[0];
serverIP = message[1];
sendConnectionRequest ();
mHandler = new Handler(); // Handler to update UI
mHandler.post(mUpdate); // post is a method to update UI
}