Gelöst: Nur AlertDialog nach Klick auf Notification-Button anzeigen

  • 4 Antworten
  • Letztes Antwortdatum
R

reneph

Dauer-User
367
Hey,

ich würde gern beim Klick auf einen Button in der NotificationBar einen AlertDialog anzeigen lassen, so dass nur der Dialog angezeigt wird und der Hintergrund transparent ist. Dabei soll im Hintergrund, also das, was man im transparenten Hintergrund sieht, immer die jeweilige App sein, die man halt grad im Vordergrund hat.

Mit dem folgenden Code erhalte ich meinen AlertDialog, habe einen transparenten Hintergrund, aber er bringt immer meine App in den Hintergrund. Das heißt, wenn ich vom Homescreen die Notification-Action trigger, dann bringt er immer die zuletzt geöffnete Activity meiner App in den Hintergrund des AlertDialogs.
Das möcht ihc nicht haben, scheine jedoch ganz schön auf dem Schlauch zu stehen... :o :D

Im Anhang hab ich mal ein Screenshot von PerfMon rein getan... In diesem Stil möchte ich das gern haben :)

Der Intent, den ich aktuell einer Notification-Action zugewiesen habe ist folgender:
PHP:
Intent iTest = new Intent(getSherlockActivity(), TestActivity.class);
PendingIntent pTestIntent = PendingIntent.getActivity(getSherlockActivity(), 0, iTest, 0);
Die TestActivity, die getriggert wird, enthält aktuell folgenden Code:
PHP:
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        AlertDialog.Builder a= new AlertDialog.Builder(this);
        a.setTitle("aaa");
        a.create().show();
    }
Der festgelegte Style ist folgender:
PHP:
    <style name="DialogTheme" parent="@android:style/Theme.Dialog">
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowFullscreen">false</item>
        <item name="android:backgroundDimEnabled">true</item>
    </style>
 

Anhänge

  • Screenshot_2012-12-03-18-00-41.png
    Screenshot_2012-12-03-18-00-41.png
    53,4 KB · Aufrufe: 320
Zuletzt bearbeitet:
Habe so eine ähnliche App auch mal geschrieben.

Hatte im Manifest folgendes Theme verwendet:
Code:
android:style/Theme.NoDisplay

Mehr sollte es eigentlich gar nicht sein. ;)
 
Trised schrieb:
Mehr sollte es eigentlich gar nicht sein. ;)

Das Problem ist ja nicht unbedingt der Dialog selbst, der funktioniert ja, auch die Darstellung zwecks Transparenz ist kein Problem.

Hab mein Problem nochmal mit Screenshots visualisiert.
Bild 1: Meine Test-App, wenn ich auf den Button klicke, dann wird die Notification erstellt.

Danach gehe ich über den Home-Button zurück auf den Homescreen.

Nun drück ich bei Bild 2 auf den ActionButton "btn1".
Hier möchte ich, dass die Meldung "aaa" erscheint und im Hintergrund nachwievor der Homescreen zu sehen ist.
Was aber stattdessen passiert ist, dass die Activity von zuvor aufgerufen wird und da der AlertDialog angezeigt wird.
 

Anhänge

  • Screenshot_2012-12-04-16-33-08.png
    Screenshot_2012-12-04-16-33-08.png
    20,5 KB · Aufrufe: 291
  • Screenshot_2012-12-04-16-33-17.png
    Screenshot_2012-12-04-16-33-17.png
    17,8 KB · Aufrufe: 309
  • Screenshot_2012-12-04-16-33-26.png
    Screenshot_2012-12-04-16-33-26.png
    9,5 KB · Aufrufe: 296
  • NotificationTest.zip
    413,7 KB · Aufrufe: 93
wenn du mittels home button die app schließt, dann bleibt sie weiterhin am leben ( wie lange weiß man nicht)

das heißt die Activity ist noch am Stack in dem Task. Jetzt klickst du auf die Notification und öffnest eine andere Activity auf dem Task - wird also drüber gelegt.

Schau dir mal die Intent Flags an. Da müsstest bei deiner Notification ein anderes/zusätzliches setzen, dass ein neuer Task gestartet wird oder sowas.
Einfach mal bisschen damit rumspielen.
 
  • Danke
Reaktionen: reneph
Vielen Dank für den Hinweis.

Falls es mal noch jemanden interessieren sollte, die Lösung ist folgende:
Code:
android:launchMode="singleInstance"

Das hab ich bei der Activity, die meinen AlertDialog zeigt, gesetzt.
 
Zurück
Oben Unten