0
私は最初にsetText
のコード部分を持っています。その後、Toast
にしてから、Bluetooth経由で接続しようとしています。問題は、私のsetText
とToasts
が接続された後にだけ表示されることです。トーストは同時に表示されません
Toasts
の代わりにLog.i
を入れようとしましたが、同時に表示されました。
誰かが理由と方法を同時に説明することができますToasts
?
コード:
........
else if (BluetoothDevice.ACTION_ACL_DISCONNECTED.equals(action)) {
tvDevices.setText("");
Toast.makeText(getApplicationContext(), "Lost connection!", Toast.LENGTH_SHORT).show();
connect(btDevice, ConstantsVariables.reconnectionAttempts);
}
public void connect(BluetoothDevice bt, int attempts){
Toast.makeText(getApplicationContext(), "Trying to connect...", Toast.LENGTH_SHORT).show();
if(attempts > 0){
for(int i = 1; i <= ConstantsVariables.reconnectionAttempts; i++){
ConnectThread thread = new ConnectThread(bt);
boolean connectVar = thread.connect();
if(connectVar){
break;
}
}
}
}
.......
public boolean connect() {
BA.cancelDiscovery();
try {
mSocket.connect();
} catch (IOException e) {
Log.d("CONNECTTHREAD","Could not connect: " + e.toString());
try {
mSocket.close();
} catch (IOException exception){}
return false;
}
return true;
}
いいえ、私は 'getApplicationContext()'について理解しました。しかし、バックグラウンドスレッドとその作り方について説明してください。 – Tryam
私は、 'AsyncTask.execute(new Runnable(){ @Overrideのような構造を作るべきであることを理解しました public void run(){} })';ありがとう! – Tryam
ハンドラでAsyncTaskまたはバックグラウンドスレッドを使用できますが、両方を同時に使用することはできません。いずれかを使用する方法の最も簡単な例は、http://www.vogella.com/tutorials/AndroidBackgroundProcessing/article.html#exampleです。 –