【问题标题】:How to close all Recent App through my app programmatically in android如何在android中以编程方式通过我的应用程序关闭所有最近的应用程序
【发布时间】:2016-04-20 10:13:08
【问题描述】:

我正在设计一个用于删除最近任务的应用程序。我使用此代码删除最近的任务,

public boolean removeTask(int taskId, int flags) {
    try {
        return (Boolean) mRemoveTask.invoke(mActivityManager, Integer.valueOf(taskId), Integer.valueOf(flags) );
    } catch (Exception ex) {
        Log.i("MyActivityManager", "Task removal failed", ex);
    }
    return false;
}

public void clearRecentTasks() {
    List<ActivityManager.RecentTaskInfo> recents = mActivityManager.getRecentTasks(1000, ActivityManager.RECENT_IGNORE_UNAVAILABLE);
    // Start from 1, since we don't want to kill ourselves!
    for( int i=1; i < recents.size(); i++ ) {
        removeTask( recents.get(i).persistentId, 0);
    }
}

【问题讨论】:

  • @Nirav Ranpara 谢谢但此代码用于终止进程而不是关闭应用程序。不工作请建议我回答关闭最近的应用程序。
  • @user6229415,您找到解决方案了吗?

标签: java android background-process


【解决方案1】:

检查这个:

private void killRunningApps(final Context context) {
    this.timer.scheduleAtFixedRate(new TimerTask() {
        @Override
        public void run() {
            List<String> packages = InstalledApps.getRunning(context);
            assert packages != null;
            for (String packageName : packages) {
                AppInfo info = InstalledApps.getAppInfo(packageName, context);
                assert info != null;
                if ((info.getFlag() & ApplicationInfo.FLAG_SYSTEM) == 1) continue;
                manager.killBackgroundProcesses(packageName);
            }
        }
    }, 0, this.updateInterval);
}

首先,你必须声明经理:

    private ActivityManager manager;

在 onCreate() 中:

this.manager = (ActivityManager) this.getSystemService(Context.ACTIVITY_SERVICE);

【讨论】:

  • 谢谢你..但是这段代码是为了杀死后台进程......我需要关闭最近的应用程序的代码。
猜你喜欢
  • 1970-01-01
  • 2017-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-27
  • 2012-11-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多