1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. The_S, 21.02.2011 #1
    The_S

    The_S Threadstarter Android-Hilfe.de Mitglied

    Hallo,

    ich registriere über den AlarmManager einen BroadcastReceiver. Dieser BroadcastReceiver startet einen Hintergrund Service, der eine gewisse Zeit läuft. Nun soll der Hintergrund Service ein Popup anzeigen, das dem Benutzer die Möglichkeit gibt auf "ja" oder "nein" zu klicken. Sobald der User geklickt hat, möchte ich in meinem Hintergrund Service wissen, auf was geklickt wurde.

    Wie kann ich so etwas realisieren?

    Danke und Grüße
    Stefan
     
  2. rushzero, 21.02.2011 #2
    rushzero

    rushzero Erfahrener Benutzer

    ähm wo ist jetzt genau dein Problem das was du beschrieben hast funktioniert soweit(vom logischen her)

    Broadcast() -> onReceiv() -> StartService() -> AlertActivity.Show()

    Erklär mal genauer wo du jetzt nicht weiterkommst
     
    Zuletzt bearbeitet: 21.02.2011
  3. The_S, 21.02.2011 #3
    The_S

    The_S Threadstarter Android-Hilfe.de Mitglied

    Das Problem ist, wie ich den Dialog anzeige.

    Das hier

    Code:
    	public static void showInfoDialog(Context c, String text) {
    		AlertDialog.Builder builder = new AlertDialog.Builder(c);
    		builder
    			.setMessage(text)
    			.setCancelable(true)
    			.setPositiveButton(R.string.gen_ok, new DialogInterface.OnClickListener() {
    			
    				@Override
    				public void onClick(DialogInterface dialog, int which) {
    					dialog.cancel();
    				}
    		});
    		AlertDialog alert = builder.create();
    		alert.show();
    	}
    Funktioniert aus dem Service nicht, wenn ich als Context getApplicationContext() im Service übergebe. Also es wird einfach nichts angezeigt.

    Mach ich was falsch?
     
  4. rushzero, 21.02.2011 #4
    rushzero

    rushzero Erfahrener Benutzer

    Das Funktioniert aus dem Service auch nicht ein Service sollte die Notificationbar benutzen um dem User Information mitzuteilen.

    Könntest höchstens ein Activity starten und den Dialog dort implementieren
     
  5. The_S, 21.02.2011 #5
    The_S

    The_S Threadstarter Android-Hilfe.de Mitglied

    Und wie komme ich dann an den Rückgabewert der Activity? startActivityForResult kann ich aus einem Service ja nicht starten ...

    Ich programmiere an einer Alarm-App - und da sollte der User ja irgendwie die Möglichkeit haben den Alarm über eine Schaltfläche auszuschalten ;) .

    Danke!
     
  6. FelixL, 21.02.2011 #6
    FelixL

    FelixL Ehrenmitglied

    Ich schlage mal einen weiteren Broadcast vor. Dein Service kann auch notfalls hundert registrieren ;)
     
  7. The_S, 21.02.2011 #7
    The_S

    The_S Threadstarter Android-Hilfe.de Mitglied

    Also bspw. Broadcast ruft Activity, Activity spielt Alarm, sobald Benutzer auf den Snooze-Button drück wird ein weiterer Broadcast registriert, der bspw. in 5 Minuten die Activity noch einmal aufruft. Usw. usf. ...

    Hast du das so gemeint?

    Danke!
     
  8. FelixL, 21.02.2011 #8
    FelixL

    FelixL Ehrenmitglied

    Ungefähr. Gibt aber wahrscheinlich sauberere Lösungen.

    Z.B. kannst du aus dem Service heraus eine normale Activity problemlos starten:

    Intent dialogIntent = new Intent(getBaseContext(), myActivity.class);
    dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    getApplication().startActivity(dialogIntent);

    Du kannst wahrscheinlich auch aus der Activity heraus den AlarmManager wieder manipulieren. Musst schauen was für dich das Sinnvollste ist.
     
  9. The_S, 21.02.2011 #9
    The_S

    The_S Threadstarter Android-Hilfe.de Mitglied

    Ja, aber wenn ich aus dem Service raus die Activity starte, bekomme ich im Service wieder nicht mit, wenn der Benutzer einen Knopf an der Activity gedrückt hat. Oder hast du das anders gemeint?

    Dankeschön!
     
  10. FelixL, 21.02.2011 #10
    FelixL

    FelixL Ehrenmitglied

    Naja, egal wie du die Activity startest sollte es über den Broadcast möglich sein dem Service das Ergebnis mitzuteilen. Oder eben den AlarmManager so manipulieren, das er dem Service dann sowieso einen Broadcast schickt, darauf horchst du ja sowieso.
     
    The_S gefällt das.
  11. The_S, 21.02.2011 #11
    The_S

    The_S Threadstarter Android-Hilfe.de Mitglied

    Hui, ich glaube da muss ich mich dann noch einmal tiefer in die Broadcast-Service Thematik reinfuchsen. Dachte bis jetzt gibt es die Aufteilung:

    Activity: GUI-Element
    BroadcastReceiver: Reagiert auf ein Systemereignis, bspw. eine bestimmte Uhrzeit, Screen an/aus, Handy fährt hoch, ...
    Service: Hintergrundprozess

    Aber wenn ich über einen Broadcast auch eine Activity mit einem Service kommunizieren lassen kann, wäre das natürlich super. Danke soweit schon einmal. Wenn du noch nen Link oder so für mich hättest, wäre ich wunschlos glücklich :thumbsup:
     
  12. FelixL, 21.02.2011 #12
    FelixL

    FelixL Ehrenmitglied

    Context | Android Developers)

    Du kannst auch selbst Broadcasts senden und definieren. Das System hat nur eigene, die auch teilweise nur vom System gesendet werden können!
     
    The_S gefällt das.
  13. The_S, 21.02.2011 #13
    The_S

    The_S Threadstarter Android-Hilfe.de Mitglied

    Dann hab ich schon mal ne Lektüre für morgen. Danke dir :) .
     
  14. The_S, 22.02.2011 #14
    The_S

    The_S Threadstarter Android-Hilfe.de Mitglied

    Hat alles bestens funktioniert :)
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[ERLEDIGT] Probleme mit Service unter Android N Android App Entwicklung 16.07.2017
[ERLEDIGT] Hilfe bei Fehler in Quellcode benötigt Android App Entwicklung 23.06.2017
[OFFEN] Service wird bei manchen Geräten nicht gestartet Android App Entwicklung 09.04.2017
[ERLEDIGT] Popup mit Fragment realisieren oder besser eine andere Klasse nehmen? Android App Entwicklung 22.03.2017
QR-Result in EditText darstellen Android App Entwicklung 02.01.2017
Google Play Services Fehler Android App Entwicklung 19.12.2016
Du betrachtest das Thema "Popup mit Result von Background Service" im Forum "Android App Entwicklung",