mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-17 00:30:37 -08:00
Remove leftover tasks from previous Emacs sessions on startup
* java/org/gnu/emacs/EmacsService.java (onCreate): Call removeOldTasks. * java/org/gnu/emacs/EmacsWindowManager.java (removeOldTasks): New function. * java/proguard.conf: Optimize optimizer configuration.
This commit is contained in:
parent
845246093f
commit
2823eae0b7
3 changed files with 66 additions and 19 deletions
|
|
@ -27,6 +27,7 @@ import android.app.ActivityManager.RecentTaskInfo;
|
|||
import android.app.ActivityManager;
|
||||
import android.app.ActivityOptions;
|
||||
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
|
||||
|
|
@ -385,4 +386,44 @@ public final class EmacsWindowManager
|
|||
window.onActivityDetached ();
|
||||
}
|
||||
}
|
||||
|
||||
/* Iterate over each of Emacs's tasks to delete such as belong to a
|
||||
previous Emacs session, i.e., tasks created for a previous
|
||||
session's non-initial frames. CONTEXT should be a context from
|
||||
which to obtain a reference to the activity manager. */
|
||||
|
||||
public void
|
||||
removeOldTasks (Context context)
|
||||
{
|
||||
List<AppTask> appTasks;
|
||||
RecentTaskInfo info;
|
||||
ComponentName name;
|
||||
String target;
|
||||
Object object;
|
||||
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP)
|
||||
return;
|
||||
|
||||
if (activityManager == null)
|
||||
{
|
||||
object = context.getSystemService (Context.ACTIVITY_SERVICE);
|
||||
activityManager = (ActivityManager) object;
|
||||
}
|
||||
|
||||
appTasks = activityManager.getAppTasks ();
|
||||
target = ".EmacsMultitaskActivity";
|
||||
|
||||
for (AppTask task : appTasks)
|
||||
{
|
||||
info = task.getTaskInfo ();
|
||||
|
||||
/* Test whether info is a reference to
|
||||
EmacsMultitaskActivity. */
|
||||
if (info.baseIntent != null
|
||||
&& (name = info.baseIntent.getComponent ()) != null
|
||||
&& name.getShortClassName ().equals (target))
|
||||
/* Delete the task. */
|
||||
task.finishAndRemoveTask ();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue