Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Android aplikacija - gašenje aplikacije posle 10 min neaktivnosti usera

[es] :: Java :: Android aplikacija - gašenje aplikacije posle 10 min neaktivnosti usera

[ Pregleda: 956 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

xl_kid
Knjaževac

Član broj: 82420
Poruke: 159
77.243.16.*



Profil

icon Android aplikacija - gašenje aplikacije posle 10 min neaktivnosti usera17.02.2023. u 13:48 - pre 13 meseci
Pozdrav,
imam problem sa gašenjem aplikacije posle određenog vremena neaktivnosti. Ako je korisnik neaktivan x min aplikacija se vraća na login fomu ali ako korisnik ugasi uređaj na dugme proces gašenja se zaustavlja. Molim za pomoć gde grešim :)

evo koda

***********************************************************************************
LogOutTimerUtil classa
***********************************************************************************

package com.test.test;

import android.app.ActivityManager;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;

import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.ExecutionException;

public class LogOutTimerUtil {

public interface LogOutListener {
void doLogout();

}

static Timer longTimer;
static int LOGOUT_TIME = (1 * 10 * 1000); // delay in milliseconds i.e. 5 min = 300000 ms or use timeout argument

public static synchronized void startLogoutTimer(final Context context, final LogOutListener logOutListener) {
if (longTimer != null) {
longTimer.cancel();
longTimer = null;
}
if (longTimer == null) {

longTimer = new Timer();

longTimer.schedule(new TimerTask() {

public void run() {

cancel();

longTimer = null;

try {
boolean foreGround = new ForegroundCheckTask().execute(context).get();

if (foreGround) {
logOutListener.doLogout();
}

} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}

}
}, LOGOUT_TIME);
}
}

public static synchronized void stopLogoutTimer() {
if (longTimer != null) {
longTimer.cancel();
longTimer = null;
}
}
static class ForegroundCheckTask extends AsyncTask<Context, Void, Boolean> {

@Override
protected Boolean doInBackground(Context... params) {
final Context context = params[0].getApplicationContext();
return isAppOnForeground(context);
}
private boolean isAppOnForeground(Context context) {
ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
if (appProcesses == null) {
return false;
}
final String packageName = context.getPackageName();
for (ActivityManager.RunningAppProcessInfo appProcess : appProcesses) {
if (appProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND && appProcess.processName.equals(packageName)) {
return true;
}
}
return false;
}
}
}

***********************************************************************************
Pocetna classa
***********************************************************************************

public class Pocetna extends AppCompatActivity implements LogOutTimerUtil.LogOutListener

//

@Override
protected void onStart() {
super.onStart();
LogOutTimerUtil.startLogoutTimer(this, this);

}

@Override
public void onUserInteraction() {
super.onUserInteraction();
LogOutTimerUtil.startLogoutTimer(this, this);


}


@Override
protected void onPause() {
super.onPause();

}

@Override
protected void onStop() {
super.onStop();

}


@Override
protected void onResume() {
super.onResume();

}


@Override
public void doLogout() {
Intent intent = new Intent(this, MainActivity.class);
finishAndRemoveTask();
startActivity(intent);

}

INTRUDER
 
Odgovor na temu

ravni

Član broj: 8894
Poruke: 373



+15 Profil

icon Re: Android aplikacija - gašenje aplikacije posle 10 min neaktivnosti usera20.02.2023. u 08:20 - pre 13 meseci
malo je neobican ovaj uslov

Code:
if (foreGround) {
  logOutListener.doLogout();
}

kao da zelis da izlogujes korisnika dok radi u aplikaciji

kada se telefon ugasi, svi programi (aplikacije) prestaju da rade
ako zelis da se stanje aplikacije ocuva nakon sto korisnik ukljuci telefon i pokrene tvoju aplikaciju, moras sacuvati podatke koji su ti bitni u bazu podataka, fajl ili shared pereferences

vise o tome na
https://developer.android.com/training/data-storage?hl=en
 
Odgovor na temu

[es] :: Java :: Android aplikacija - gašenje aplikacije posle 10 min neaktivnosti usera

[ Pregleda: 956 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.