Liste (UsageStats) sortieren (Android)

Hi ich arbeite an meinem ersten Android-Programm und komme einfach nicht weiter.

Wie kann ich die queryUsageStats nach der TimeInForeground-Zeit / PackageName sortieren?

Java:
        long startTime = new android.icu.util.GregorianCalendar(2014, 0, 1).getTimeInMillis();
        long endTime = new GregorianCalendar(2021, 0, 1).getTimeInMillis();


        UsageStatsManager usageStatsManager = (UsageStatsManager)this.getSystemService(Context.USAGE_STATS_SERVICE);
        List<UsageStats> queryUsageStats = usageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_MONTHLY, startTime, endTime);

        Log.d("debugging",  queryUsageStats.size());



        // Gebe jede einzelne Statistik aus

        for (UsageStats us : queryUsageStats) {

            Log.d("StatsLogged", us.getPackageName() + " = " + us.getTotalTimeInForeground()/1000/60 + " Minuten");

        }
Danke!
 
Wie genau?
Java:
 Collections.sort(queryUsageStats);
=> Inferred type 'android.app.usage.UsageStats' for type parametet 'T' is not within bound; should implement 'java.lang.Comparable <?super android.app.UsageStats>'
 
Zuletzt bearbeitet:
Hmm, Da mit Collections.sort eine direkte Lösung vorhanden ist, ist es etwas unschön, aber evtl. wünscht sich da ja jemand eine Streams Lösung? :)
Java:
queryUsageStats = queryUsageStats.stream()
    .sorted(Comparator.comparing(UsageStats::getTotalTimeInForeground).thenComparing(UsageStats::getPackageName))
    .collect(Collectors.toList());
Ist jetzt komplett ungetestet hingeschrieben, aber zumindest so in der Art müsste es doch gehen :)
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben