Hi All,
I am working on a App where functionality is when ever User goes out of the 
app and comes back it should ask him login details, so when ever user kicks 
himself out of app, by pressing home button or multi-task button or start 
other app on my app, then my app should automatically logoff/logout user 
and when he comes back ask for credentials.

To check backgrounded state of app I tried using 
ActivityManager.getRecentTasks(1); and check if topactivity package is 
other than my app package and if yes then I assumed app is backgrounded,
This works good till Kitkat/OS L where google has deprecated 
ActivityManager.getRecentTasks method for privacy purpose.

Second solution we implemented was to use ComponentCallbacks2 and check 
onTrimMemory(int level) for level = TRIM_MEMORY_UI_HIDDEN. This worked in 
almost all cases, but one. onTrimMemory Component call back is registered 
for Application class.

When call to Activity finish() happens onTrimMemory call back will not be 
triggered. Say I have activity A and B, Activity A starts Activity B, Now I 
complete some work in Activity B and call finish() on B, From time when 
finish() on B is called till Activity A's onStart/onResume will be called, 
in this timeframe if user press home buttom/ multitask button and goes out 
of the app, onTrimMemory is not called and it is not possible to know if 
app was backgrounded, because of this we can not logoff session. So if user 
gets out of app in that timeframe and goes back he will get same session 
back.

Second case we detect same behavior is, if we call finish() in activity B's 
onPause() and user press home/multitask button or start other app from 
notification area then because of this finish() call in onPause, we are not 
getting onTrimMemory call back.

There should be some standard api/call back to check if app is 
backgrounded, if not, apis like onTrimMemory should be consistent with 
their call backs. Kindly help.

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to