Как позвонить в CallBack ();функция снова после успешного выполнения? - PullRequest
0 голосов
/ 12 октября 2018

У меня есть проект, который имеет дело с RFID-картами. После нажатия на карту в RF Reader, он записывает данные и нуждается в повторном запуске RFCard Reader.Но моя проблема в том, что после того, как я нажал на карту, следующая карта, которая будет нажата, не может быть прочитана из-за того, что CallBack(); больше не запускается.

Я пробовал это, после 3-5 раз, считыватель остановился.

class  myCallbackThread extends Thread{
        @Override
        public void run(){
            try{
                //my code of saving will be here...

                myCallbackThread myCallbackThread = new myCallbackThread();
                myCallbackThread.start();

            }catch (Throwable e){
                e.printStackTrace();
            }
        }
    }

It Этот полный код является функцией CallBack();.Моя проблема в том, как я могу вызвать его снова, чтобы повторить процесс после его успешного выполнения?

 class CallBackThread extends Thread {

    @Override
    public void run() {

        try {
            RFCardInterface.waitForCardPresent(RFCardInterface.CONTACTLESS_CARD_MODE_AUTO, 1, -1);
            if (RFCardInterface.isCallBackCalled &&
                    RFCardInterface.notifyEvent.eventID == RFCardInterface.CONTACTLESS_CARD_EVENT_FOUND_CARD) {

                IDCatcher = StringUtility.ByteArrayToString(RFCardInterface.notifyEvent.eventData,
                        RFCardInterface.notifyEvent.eventData.length);

                IDCatcher = IDCatcher.substring(9, 21).replace(" ", "");
                Log.e("IDCatcher", IDCatcher);


                EventBus.getDefault().post(new EBTest2());
            }

        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

Как мне добиться, чтобы сделать его неопределенным ?.Спасибо

РЕДАКТИРОВАТЬ Добавлен мой EBtest2()

@Subscribe(threadMode = ThreadMode.MAIN_ORDERED)
public void onEvent(EBTest2 ebTest2) {

    Cursor c = dbhelper.getReadableDatabase().rawQuery("select is_arrived,is_closed from trans_settings order by _id desc limit 1", null);

    if (c != null && c.moveToFirst()) {
        try {
            String is_arrived = c.getString(0);
            String is_closed = c.getString(1);

            if (is_arrived.equals("0") && is_closed.equals("0")) {
                SearchEmp();
            } else if (is_arrived.equals("1") && is_closed.equals("0")) {
                SearchEmp_isArrived();
            } else if (is_arrived.equals("1") && is_closed.equals("1")) {
                SearchEmp_isClosed();
            }

        } catch (Throwable e) {
            e.printStackTrace();
        }
        c.close();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...