从最近的应用菜单中删除应用

时间:2017-03-24 15:56:59

标签: java android

我需要找到一种从最近的应用菜单中移除(或清除)应用的方法。 我不想从列表中删除我的应用,我想根据我的选择删除最近的应用。我得到的是应用程序的名称(packageName)。我无法找到任何方法,所以如果我能找到答案,我会很高兴。 Android平台,Java API +19或+21。 最诚挚的问候

1 个答案:

答案 0 :(得分:0)

您可以先获取最近的应用列表,以检查最新应用列表中是否存在包名。它可以这种方式完成 -

String topPackageName ;
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
    UsageStatsManager mUsageStatsManager = (UsageStatsManager)getSystemService("usagestats");                       
    long time = System.currentTimeMillis(); 
    // We get usage stats for the last 10 seconds
    List<UsageStats> stats = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, time - 1000*10, time);                                    
    // Sort the stats by the last time used
    if(stats != null) {
        SortedMap<Long,UsageStats> mySortedMap = new TreeMap<Long,UsageStats>();
        for (UsageStats usageStats : stats) {
            mySortedMap.put(usageStats.getLastTimeUsed(),usageStats);
        }                    
        if(mySortedMap != null && !mySortedMap.isEmpty()) {
            topPackageName =  mySortedMap.get(mySortedMap.lastKey()).getPackageName();                                   
        }                                       
    }
}  

代码段来源How to get recent tasks

完成后,您可以使用ActivityManager对象上的killBackgroundProcesses终止应用程序,如下所示 -

ActivityManager actMan = (ActivityManager) getSystemService(Activity.ACTIVITY_SERVICE);
actMan.killBackgroundProcesses(killAppPackageName);

请注意,您需要KILL_BACKGROUND_PROCESSES权限。所以在你的清单中添加它

<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />