How to get the list of latest apps with Android API 21 Lollipop?

I am creating a home launcher and I want to be compatible with Android 5.0, Lollipop. I want to get a list of recent applications in the launchpad.

But since it ActivityManager.getRecentTasks()no longer works in API 21, how can I do this?

+4
source share
2 answers
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();                                   
        }                                       
    }
}  

Using UsageStatsManager, you can get the names of running foreground packages.

Source: How to get recent assignments on Android "L"?

+8
source

, , api, getRecentTasks, getRunningTasks API21, , . api lollipop, null : (.

api, packagename , , . Android Linux, AndroidProcesses. /proc Android pid processName, processName ad com.xxx.xxx:remote. , : :)

packagename, , , . , Service . , .

0

All Articles