Anyone who knows how to disable the Recent Task App Button when it launches the allowed application in the app just like in SureLock Kiosk Lockdown? If so, can you please provide codes for that?
Asked
Active
Viewed 6,793 times
7
-
2hi, did you find a solution for blocking the recents button ? – Tazz Jun 22 '15 at 11:10
-
Does this answer your question? [Disable recent tasks button on Android 5.0](https://stackoverflow.com/questions/30497528/disable-recent-tasks-button-on-android-5-0) – Troy Jun 06 '22 at 15:33
4 Answers
2
From the source
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
Log.d("Focus debug", "Focus changed !");
if(!hasFocus) {
Log.d("Focus debug", "Lost focus !");
Intent closeDialog = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
sendBroadcast(closeDialog);
}
}

Nambi
- 11,944
- 3
- 37
- 49
2
For disabling Recent button add this code to your Main activity:
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (!hasFocus) {
windowCloseHandler.post(windowCloserRunnable);
}
}
private void toggleRecents() {
Intent closeRecents = new Intent("com.android.systemui.recent.action.TOGGLE_RECENTS");
closeRecents.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
ComponentName recents = new ComponentName("com.android.systemui", "com.android.systemui.recent.RecentsActivity");
closeRecents.setComponent(recents);
this.startActivity(closeRecents);
}
private Handler windowCloseHandler = new Handler();
private Runnable windowCloserRunnable = new Runnable() {@Override public void run() {
ActivityManager am = (ActivityManager) getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);
ComponentName cn = am.getRunningTasks(1).get(0).topActivity;
if (cn != null && cn.getClassName().equals("com.android.systemui.recent.RecentsActivity")) {
toggleRecents();
}
}
};

Samvel Kartashyan
- 730
- 7
- 15
0
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
Log.d("Focus debug", "Focus changed !");
if(!hasFocus) {
Log.d("Focus debug", "Lost focus !");
Intent closeDialog = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
sendBroadcast(closeDialog);
}
}

RkKhanpuriya
- 164
- 1
- 13
-1
For disable the recent apps button while launching other applications then you can create a service.
public class StatusBarService extends Service {
private static final String TAG = StatusBarService.class.getSimpleName();
private volatile boolean isRunning;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
isRunning = true;
// Lock a recentApps button
RecentAppLockerThread thread = new RecentAppLockerThread();
new Thread(thread).start();
}
/**
* Lock a recent apps button
*
*
*/
private class RecentAppLockerThread implements Runnable {
@Override
public void run() {
while (isRunning) {
Intent closeDialog = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
sendBroadcast(closeDialog);
}
}
}
@Override
public boolean stopService(Intent name) {
isRunning = false;
return super.stopService(name);
}
@Override
public void onDestroy() {
super.onDestroy();
isRunning = false;
}
}

Kannappan
- 11
- 2
-
1You can't be serious. Infinite closedialog broadcasts while your service is running? Additionally, the stopService override isn't a callback to stop the service; it comes from the context so that code runs when you call stopService from within your service. This answer is harmful. – PaulR Jul 24 '15 at 22:50