В моем простом приложении Учебное пособие по Bluetooth Я подключаю пистолет сканирования Bluetooth и получаю от него сканирование в виде строк. У меня есть весь код подключения в MainActivity
, и теперь все, что я пытаюсь сделать, это переопределить мою функцию receiveScans(String s)
в другой деятельности, чтобы я мог использовать данные для других целей. Тем не менее, receiveScans(String s)
всегда вызывается в действии MainActivity
и никогда не попадает в деятельность TestingScanner
. Почему это? Что мне нужно сделать?Переопределенная функция, не получающая данные?
Вот кусочек кода - мой Handler
- в MainActivity
, который посылает данные, которые отсканированные в в моей receiveScans()
функции в MainActivity
.
private MessageHandler mHandler = new MessageHandler();
private class MessageHandler extends android.os.Handler{
@Override
public void handleMessage(Message msg) {
switch (msg.what){
case MESSAGE_READ: // Received scan, get information...
byte[] readBuf = (byte[]) msg.obj;
String scan = new String(readBuf);
receiveScans(scan); // Send string of info to recieveScans
break;
default:
super.handleMessage(msg);
}
}
}
protected void receiveScans(String s){
}
А вот TestingScanner
класс, который я amtrying замещать функцию receiveScans. Я просто пытаюсь установить текст в TextView
по строке отправленного сканер.
public class TestingScanner extends MainActivity {
TextView scannerText ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_scanner);
scannerText = (TextView)findViewById(R.id.scanner_text);
}
@Override
protected void receiveScans(String s) {
super.receiveScans(s);
scannerText.setText(s);
}
}
Переопределенная функция никогда не вызывается.
Функция переопределения будет вызываться только в том случае, если действие TestingScanner является текущей деятельностью (или активностью в фокусе). – RScottCarson
Непонятно. 'TestingScanner' не расширяет' MessageHandler', поэтому неясно, почему вы думаете, что 'TestingScanner.receiveScans()' должен быть вызван. –