2
「アクティビティを再開できません」RunTimeExceptionが表示され、明らかに私のbroadcastReciever(bluetoothの場合)と関係があります。 onPauseはうまくいきます。しかし、この単純なコードで何が問題になっていますか?受信者のライフサイクル - onResume()に再登録するとクラッシュする
//Class fields:
boolean isReceiverRegistered = false; //My flag
IntentFilter intentFilter = null;
//Inside onCreate:
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(BluetoothDevice.ACTION_ACL_CONNECTED);
intentFilter.addAction(BluetoothDevice.ACTION_ACL_DISCONNECTED);
if (!isReceiverRegistered) {
registerReceiver(intentReceiver, intentFilter);
isReceiverRegistered = true;
}
protected void onResume() {
super.onResume();
if (!isReceiverRegistered) {
registerReceiver(intentReceiver, intentFilter); //THE CRASH STATEMENT
isReceiverRegistered = true;
}
}
protected void onPause() {
super.onPause();
if (isReceiverRegistered) {
try {
unregisterReceiver(intentReceiver);
} catch (IllegalArgumentException e) {
}
isReceiverRegistered = false;
}
}
BroadcastReceiver intentReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
if (BluetoothDevice.ACTION_ACL_CONNECTED.equals(action)) {
Log.v(TAG, "connected:"+device.getName());
}
else if (BluetoothDevice.ACTION_ACL_DISCONNECTED.equals(action)) {
Log.v(TAG, "disconnected:"+device.getName());
}
}
};
はい!ありがとう。私はAndroid環境でjavaを学び始めています。あまりにも頻繁に私はこれらの基本的なJavaの事を忘れていますが、より高いレベルのAndroidのものについて考えるだけです。私は今、そのような間違いを「見る」ことを学ぶために、いくつかの初級Javaを練習する必要があることを認識しています。 – Tombola