public class SessionManager extends BroadcastReceiver{
Date timeOff;
Date timeOn;
@Override
public void onReceive(Context context, Intent intent) {
if("android.intent.action.SCREEN_OFF".equals(intent.getAction())) {
Log.i("MobileViaNetReceiver", "Screen off - start time to end session");
timeOff = Calendar.getInstance().getTime();
}
if("android.intent.action.ACTION_SHUTDOWN".equals(intent.getAction())) {
// DO WHATEVER YOU NEED TO DO HERE
Log.i("MobileViaNetReceiver", "Shut down - log off user");
DbAdapter_User db = new DbAdapter_User(context);
db.open();
db.handleLogout();
db.close();
}
if("android.intent.action.SCREEN_ON".equals(intent.getAction())) {
timeOn = Calendar.getInstance().getTime();
long diffInMs = timeOn.getTime()-timeOff.getTime();
// convert it to Minutes
long diffInMins = TimeUnit.MILLISECONDS.toMinutes(diffInMs);
if ((int) (diffInMins) > 15) {
//log out user
Log.i("MobileViaNetReceiver", "User inactive for 15 minutes - logout user");
DbAdapter_User db = new DbAdapter_User(context);
db.open(); // ******* HERE *************
db.handleLogout();
db.close();
} else {
Log.i("MobileViaNetReceiver", "User still active");
}
}
}
Lorsque l'écran est allumé, je vérifie si l'utilisateur s'est éteint pendant plus de 15 minutes, si oui, déconnectez-le. Et allez à l'écran LonIn. Je veux commencer une intention quand j'appelle cela handleLogout() (marqué * ICI * *) Puis-je faire quand étend la classe BroadcastReceiver? Si non, que puis-je faire d'autre?Android BroadcastReceiver et démarrage d'une intention
Je l'ai fait .... intention i = new Intent (contexte, LogIn.class); startActivity (i); Il dit créer la méthode startActivity (intention) – user533844
réponse modifiée pour répondre à votre question –
Cela a fonctionné !! Merci!!! – user533844