von HOMESCREEN mit ACTION_SCREEN_OFF zurück zur App

B

berndschneider

Neues Mitglied
0
Hallo Leute!

ich habe ne LoginApp geschrieben (als Activities NICHT als service) und bei erfolgreichem Login schicke ich den user zum Android Homescreen. Das funktioniert auch soweit.

if(righPassword){

Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
}

Nur wenn ich jetzt im HomeScreen bin und den Bildschirm ausschalte, möchte ich dass wieder meine LoginApp startet. Ne Ahnung wie ich das umsetzen kann?
 
dann wird ja wieder ACTION_SCREEN_OFF verschickt und du startest deine app

versteh nicht ganz wo das problem ist ? wenns einmal klappt, klappts es sicher öfters auch oder?
 
Also naja ACTION_SCREEN_OFF und ACTION_SCREEN_ON werden zwar geschickt , aber ich gelange nicht in die View meiner LoginActivity, sondern er bleibt im Homescreen.

Ich rufe aus der LoginActivity in den onPause() und onResume() Methoden(siehe unten) die Methode im ScreenReceiver onReceive(...) auf. :

Das hier steht im ScreenReceiver:

public class ScreenReceiver extends BroadcastReceiver {

// fixed
public static boolean wasScreenOn = true;

@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
Toast.makeText(context,"AUSGEMACHT", Toast.LENGTH_LONG).show();
// do whatever you need to do here
wasScreenOn = false;
} else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
Toast.makeText(context, "ANGEMACHT", Toast.LENGTH_LONG).show();
// and do whatever you need to do here
wasScreenOn = true;
/* Intent rausda = new Intent(context, LoginActivityGrid.class);
context.startActivity(rausda);*/
}
}

}


hier die onResume und OnPause MEthoden:

@Override
protected void onPause() {
// when the screen is about to turn off
collected=secret.passwortAuslesen();
if (ScreenReceiver.wasScreenOn) {
Intent intent = new Intent(LoginActivityGrid.this,LoginActivityGrid.class );
startActivity(intent);
// this is the case when onPause() is called by the system due to a screen state change
System.out.println("SCREEN TURNED OFF");
} else {
// this is when onPause() is called when the screen state has not changed
}
super.onPause();
}


@Override
protected void onResume() {
collected=secret.passwortAuslesen();
// only when screen turns on
if (!ScreenReceiver.wasScreenOn) {
// this is when onResume() is called due to a screen state change

System.out.println("SCREEN TURNED ON");
} else {

// this is when onResume() is called when the screen state has not changed
}
super.onResume();
}
 
Zuletzt bearbeitet:
Dein Intent ist auskomentiert?!
 
Da dein BroadcastReceiver über registerReciever() in der App läuft und nicht in einem Service denke ich nicht, dass da etwas ankommt wenn der Homescreen im Vordergrund läuft und die App irgendwo im Hintergrund schläft.
 
  • Danke
Reaktionen: berndschneider
Mach doch mal Logausgaben überall rein dass du siehst wo er überhaupt hinkommt im Schlaf.
 
  • Danke
Reaktionen: berndschneider
"Also die strings “ANGEMACHT“ und “AUSGEMACHT“.werden angezeigt durch Toast in onReceive(). ok muss ich also die activity in services umwandeln damit das.funktioniert was ich möchte? momentan komm ich net weiter..."
 
hast du ne idee wie ich das ändere? also ich sehe auch dass onPause() viel zu oft aufgerufen wird, also auch wenn ich den bildschirm einschalte. dann sollte ja eigentlich eh nur onResume() aufgerufen werden.

Das HAUPTPROBLEM ist aber, dass nachdem ich im homescreen bin und ich den bildschirm ausschalte und wieder einschalte, die view der LoginActivity nicht zu sehen ist. zudem scheint er onCreate auszuführen. ganz komisch!

eigentlich will ich wenn ich im HOMESCREEN bin und den bildschirm ausschalte und wieder einschalte, dass die view meiner LoginActivity zu sehen ist und man sich einloggen kann.

Ich habe mir einiges durchglesen service zu starten und von dort die activity aufzurufen, jedoch kein plan...
strider schrieb:
Da dein BroadcastReceiver über registerReciever() in der App läuft und nicht in einem Service denke ich nicht, dass da etwas ankommt wenn der Homescreen im Vordergrund läuft und die App irgendwo im Hintergrund schläft.
 

Ähnliche Themen

A
  • AnimaAngelo85
Antworten
1
Aufrufe
337
swa00
swa00
Manny87
  • Manny87
Antworten
11
Aufrufe
166
swa00
swa00
5
Antworten
22
Aufrufe
1.421
590239
5
Zurück
Oben Unten