Retrofit HTTP Call in einer Methode

  • Antworten:2
JulK
  • Forum-Beiträge: 52

27.09.2016, 17:25:42 via Website

Hallo liebe Mitglieder,

ich hätte eine kurze Frage zu einer Methode. Vorweg die Methode wurde erstellt damit der Code etwas sauberer wird, jedoch frage ich mich jetzt ob es hier zu Problemen kommen kann.

In der Activity befindet sich ein Button mit einem OnTouchListener. Bei ACTION_DOWNund ACTION_UPwird sendCommand() aufgerufen:

button.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            int action = motionEvent.getAction();
            if(action == MotionEvent.ACTION_DOWN) {
                sendCommand(new Command(..));
                return true;
            } else if (action == MotionEvent.ACTION_UP) {
                sendCommand(new Command());
            }
            return false;
        }
    });

private void sendCommand(Command command) {
    ApiService service = ApiServiceImpl.getInstance();
    service.sendCommand(command).enqueue(new Callback<ResponseBody>() {
        @Override
        public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
        }

        @Override
        public void onFailure(Call<ResponseBody> call, Throwable t) {
        }
    });
}

Meine Frage ist nun ob die callbacks überschrieben werden wenn der Button geklickt, sprich schnell hintereinander ACTION_UP und ACTION_DOWN, wird. Bin mir aber eigentlich ziemlich sicher dass das so ist. Wenn ja, gibt es eine andere Möglichkeit, dies mit EINER Methode umzusetzen?

LG J

— geändert am 27.09.2016, 17:28:54

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

27.09.2016, 17:55:41 via Website

Hallo JulK,
Die Frage ist was du machen willst.
Musst du bei Down ein anderes CommandSetzen als bei UP?
Ansonsten würde auf einem Button doch ein OnCklickListener reichen oder?

Und was verstehst du unter Callbacks überschreiben?
Wenn der Request zweimal aufgerufen wird, dann wird bei erfolgreichem laden der Daten etc.. auch 2mal der Callback aufgerufen.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
swa00
  • Forum-Beiträge: 3.704

27.09.2016, 17:56:33 via Website

Hallo JulK

ich persönlich habe noch nicht mit dem ApiService gearbeitet, allerdings hatte ein ähnliches Problem mit
AsynTasks / Threads;

Um ganz Sicher zu sein , habe ich mir dann eine "Entprellung" mit einem Zeitglied zwischen UP & DOWN eingebaut
und dazu noch den aktuellen Status der Call-Routine abgefragt.

lg
Stefan

— geändert am 27.09.2016, 17:58:26

Liebe Grüße - Stefan
[ App - Entwicklung ]

Antworten