JobScheduler Google Sample - Background Task - Experte gesucht

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • JobScheduler Google Sample - Background Task - Experte gesucht

    Liebe Community!

    Ich bräuchte bitte einen Experten der mir zur folgender Frage Auskunft geben kann:

    Vielleicht kennt wer von euch das offizielle Google Sample JobScheduler: github.com/googlesamples/android-JobScheduler

    In diesem Beispiel wird ein Handler inklusive Messenger verwendet.

    In der Klasse MyJobService.java wird danach folgender Code verwendet:

    Java-Quellcode

    1. @Override
    2. public boolean onStartJob(final JobParameters params) {
    3. // The work that this service "does" is simply wait for a certain duration and finish
    4. // the job (on another thread).
    5. sendMessage(MSG_COLOR_START, params.getJobId());
    6. long duration = params.getExtras().getLong(WORK_DURATION_KEY);
    7. // Uses a handler to delay the execution of jobFinished().
    8. Handler handler = new Handler();
    9. handler.postDelayed(new Runnable() {
    10. @Override
    11. public void run() {
    12. sendMessage(MSG_COLOR_STOP, params.getJobId());
    13. jobFinished(params, false);
    14. }
    15. }, duration);
    16. Log.i(TAG, "on start job: " + params.getJobId());
    17. // Return true as there's more work to be done with this job.
    18. return true;
    19. }
    Alles anzeigen

    Meine Frage bezieht sich auf den folgenden Ausschnitt:

    Quellcode

    1. // Uses a handler to delay the execution of jobFinished().
    2. Handler handler = new Handler();
    3. handler.postDelayed(new Runnable() {
    4. @Override
    5. public void run() {
    6. sendMessage(MSG_COLOR_STOP, params.getJobId());
    7. jobFinished(params, false);
    8. }
    9. }, duration);
    Meiner Meinung findet ja hierbei das Runnable auf dem MainThread statt. Würde man hier z.B. eine Netzwerk Operation durchführen, würde eine NetworkOnMainThreadException bekommen.

    Kann mir bitte von euch jemand verraten, wie ihr hier in diesem Sample einen BackgroundThread für eine Netzwerkoperation durchführen könnte und eine Message nach Ende des Background Threads an die Acitvity in diesem Sample schicken kann?

    Ich hoffe mein Anliegen an euch Experten ist soweit klar und ich freue mich auf eure Unterstützung!

    Liebe Grüße
    cop