Reputation: 61
I am trying to get click event of recent apps in lollipop using RunningAppProcessInfo but i did not get this activity.
for (RunningAppProcessInfo appProcess : appProcesses)
{
if (appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND)
{
if(appProcess.importanceReasonComponent != null)
{
ComponentName comp = appProcess.importanceReasonComponent;
// Log.e("tag", "not null====>>"+comp.getClassName());
if (comp.getClassName().equals("com.android.systemui.recents.RecentsActivity"))
{
Log.e("tag===", "clear when recent app");
ApplicationClass.prefrences.Store_recent_open_app("");
}
}
}
}
Below lollipop, I got recent acitivity using following code.
List<RunningTaskInfo> tasks = manager.getRunningTasks(1);
for (RunningTaskInfo task : tasks)
{
ComponentName componentName = task.topActivity;
if (componentName.getClassName().equals("com.android.systemui.recent.RecentsActivity"))
{
Log.e("tag", "recent");
ApplicationClass.prefrences.Store_recent_open_app("");
}
}
Please help me out to resolve this problem.
Thank you.
Upvotes: 3
Views: 2729
Reputation: 720
Just use this code:
ActivityManager am = (ActivityManager) getApplicationContext()
.getSystemService(Activity.ACTIVITY_SERVICE);
String packageName;
if(Build.VERSION.SDK_INT>20){
packageName = am.getRunningAppProcesses().get(0).processName;
if (packageName != null && packageName.equals("com.android.systemui.recentsactivity")) {
// TODO do your stuff here
}
} else{
packageName = am.getRunningTasks(2).get(0).topActivity
.getPackageName();
ComponentName cn = am.getRunningTasks(1).get(0).topActivity;
if (cn != null && cn.getClassName().equals("com.android.systemui.recent.RecentsActivity")) {
// TODO do your stuff here
}
}
Upvotes: 2