Hi Mukesh, Any suggestions on how to get current pid? ActivityManager.getRecentTasks is deprecated by google in android OS L for provacy purposes. so can not use any ActivityManager method to get current PID/Running task. onTrimMemory seems reliable way to get if app is hidden or not, but only have problem descibed above.
On Monday, September 1, 2014 5:59:44 PM UTC+10, Mukesh Srivastav wrote: > > why not just check the current pid state of the app rather than doing all > those things...... > > > > > On Fri, Aug 29, 2014 at 11:25 AM, Omkar <[email protected] <javascript:>> > wrote: > >> 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] >> <javascript:> >> To unsubscribe from this group, send email to >> [email protected] <javascript:> >> 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] <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > > > > -- > Warm Regards, > *Mukesh Kumar*, > Android Consultant/Freelancer, > India,Hyderabad. > -- 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.

