Я пытаюсь измерить, как долго происходит каждый процесс обнаружения Bluetooth. Я назначаю currentTimeMillis
startTime и stopTime. Когда я помещаю класс BroadcastReceiver
в качестве внутреннего класса, я могу читать обе переменные, но когда я делаю его как внешний класс, я не могу читать startTime. Вот мой код,
private long startTime;
private long stopTime;
@Override
public void onReceive(Context context, Intent intent) {
String strIntent = intent.getAction();
if (strIntent.equalsIgnoreCase(BluetoothAdapter.ACTION_DISCOVERY_STARTED)) {
handleDiscStarted();
} else if (strIntent.equalsIgnoreCase(BluetoothAdapter.ACTION_DISCOVERY_FINISHED)) {
handleDiscFinished();
}
}
private void handleDiscStarted() {
startTime = System.currentTimeMillis();
Log.d(tag, "\nDiscovery started " + startTime);
}
private void handleDiscFinished() {
stopTime = System.currentTimeMillis();
Log.d(tag, "\nDiscovery finished " + stopTime + ", takes " + (stopTime-startTime) + " ms");
// startTime = 0 here...
Log.d(tag, "\nstopTime=" + stopTime + ", startTime=" + startTime);
}
Есть идеи, почему возникает другое поведение? Как я могу прочитать startTime во втором случае? Спасибо!