Aktuelle Activity herausfinden?

D

dannywilde

Neues Mitglied
0
Hallo Entwickler,

folgendes Problem:

Ich habe eine App mit der man andere Activities starten kann (z.B. mail app).
Ich möchte eine Funktion schreiben, die nach einer gewissen Zeitspanne die neuen activities schließt und so zu meiner ursprünglichen activity zurückkehrt.

Also z.B. so:

myActivity
(User ruft mail app auf)
-> mail activity wird gestartet
(user ruft nachricht auf)
-> nachricht activity gestartet
(Nach 10 Minuten soll wieder zur ursprünglichen Activity zurückgekehrt werden.)
-> nachricht activity.finish
-> mail activity.finish


Die Zeitspanne warte ich mit Hilfe eines THREADs ab,

Code:
private Runnable myThread = new Runnable() {
        @Override
        public void run() {
            // TODO Auto-generated method stub
            while (myProgress < 600) {
                try {
                    myHandle.sendMessage(myHandle.obtainMessage());
                    Thread.sleep(1000);

                } catch (Throwable t) {
                }
            }            

        }

        Handler myHandle = new Handler() {

            @Override
            public void handleMessage(Message msg) {
                    myProgress = myProgress + 1;
                    if(myProgress >= 600){
                          //// Hier muss die Funktion XXXXX hin
                    }
                }
            }
        };
    };
Die Funktion XXXXX muss jetzt prüfen wie die aktuelle Activity heißt, und sie gegebenenfalls schließen. Doch wie finde ich den Namen der Activity, die momentan im Vordergrund ist?

Gibt es irgendsowas wie getActivity, oder so?


Vielen Dank für eure Hilfe.
 
Leute, I nee help.

Habe jetzt tagelang rumprobiert mit getApllicationContext() und anderen Methoden, aber ich kriege nichts hin.

Vielleicht habe ich es oben zu kompliziert formuliert.

Meine Frage ist einfach:

Wie kriege ich die Activity, die aktuell im Vordergrund ist?
 
Hi dannywilde,

ich kenne keine bereitgestellte Funktion dafür, aber du kannst in einer statischen Klasse eine statische Variable mit der aktuellen Activity pflegen.

Muss halt nur selber die Arbeit machen, dass immer die aktuelle Activity gespeichert wird.

regards
 
dafür muss er aber genau wissen, was der user für externe apps aufgerufen hat.
 
Etwas seltsam was du da vorhast. Lies mal die Dokumentation zum "Activitymanager" - da ist vermutlich das was du brauchst. Benötigt aber extra Permissions.
 
@swordi und Neeldarax: Es ist unbekannt, welche apps der User aufgerufen hat. Allerdings ist die Anzahl der apps, die der User aufrufen kann beschränkt. Ich könnte also theoretisch für jede dieser apps eine eigene Funktion schreiben. Trotzdem ist mir nicht klar, wie ich die aktuelle Activity in der statischen Klasse speichern kann?





@miha: Mit dem ActivityManager probiere ich schon seit Tagen rum. Es gibt auch eine Funktion die als Lösung für meine Zwecke ausreichen würde:
Code:
void moveTaskToFront(int taskid, int flags)
Allerdings steht mir diese Funktion aus unerfindlichen Gründen nicht zur Verfügung!
Code:
ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);

am.moveTaskToFront(taskInfo.get(0).id);
Hier kriege ich die Meldung: "The method moveTaskToFront(int) is undefined for the type ActivityManager"


SDK ist auf dem neuesten Stand. Die nötige Ppermission ist auch gegeben.
Code:
    <uses-permission android:name="android.permission.REORDER_TASKS"></uses-permission>

Woran kann das liegen? Und wie werde ich diesen Fehler los?
 
Die Methode steht erst ab API Level 11 zur Verfügung. Vermutlich ist deine minSdkVersion nicht hoch genug.
 
dannywilde schrieb:
@miha: Mit dem ActivityManager probiere ich schon seit Tagen rum. Es gibt auch eine Funktion die als Lösung für meine Zwecke ausreichen würde:
Code:
void moveTaskToFront(int taskid, int flags)
Allerdings steht mir diese Funktion aus unerfindlichen Gründen nicht zur Verfügung!
Code:
[/quote]

getRunningTasks liefert die Tasks auch sortiert - da kannst du ja gucken ob deine noch läuft und was drüber ist. 

Was mir aber falsch scheint ist deine Annahme dass deine Wunsch-Activity überhaupt noch läuft nach 10 Minuten im Background. Oft wird das System sie längst entfernt haben ...
 
Zuletzt bearbeitet:

Ähnliche Themen

M
  • maksimilian
Antworten
15
Aufrufe
1.699
maksimilian
M
M
Antworten
8
Aufrufe
954
deek
D
M
  • maksimilian
Antworten
5
Aufrufe
858
maksimilian
M
Zurück
Oben Unten