私はandroid.Iが初めてで、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
}