如何获得与Android的API 21棒棒堂最近的应用程序列表? [英] How to get list of recent apps with Android API 21 Lollipop?
本文介绍了如何获得与Android的API 21棒棒堂最近的应用程序列表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要创建一个家庭发射器和我想要的是Android 5.0,棒棒糖兼容性。我想在近期启动的应用程序列表。
不过,由于 ActivityManager.getRecentTasks()
不再是API 21的作品,我该怎么办呢?
解决方案
字符串topPackageName;
如果(Build.VERSION.SDK_INT> = Build.VERSION_ codeS.LOLLIPOP){
UsageStatsManager mUsageStatsManager =(UsageStatsManager)getSystemService(usagestats);
很长一段时间= System.currentTimeMillis的();
//我们得到使用状态的最后10秒
名单< UsageStats>统计= mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY,时间 - 1000 * 10,时间);
//排序统计所使用的最后一次
如果(统计!= NULL){
SortedMap的<长,UsageStats> mySortedMap =新TreeMap的<长,UsageStats>();
对于(UsageStats usageStats:统计数据){
mySortedMap.put(usageStats.getLastTimeUsed(),usageStats);
}
如果(mySortedMap =空&安培;!&安培;!mySortedMap.isEmpty()){
。topPackageName = mySortedMap.get(mySortedMap.lastKey())getPackageName();
}
}
}
使用<一个href="https://developer.android.com/reference/android/app/usage/UsageStatsManager.html"><$c$c>UsageStatsManager$c$c>,你可以得到当前运行的前台包名。
来源:如何获得在Android&QUOT近期任务; L&QUOT; ?
I'm creating a home launcher and I want to have a compatibility with the Android 5.0, Lollipop. I want to get a list of recent apps on the launcher.
But since ActivityManager.getRecentTasks()
no longer works in API 21, how can I do this ?
解决方案
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 the UsageStatsManager
, you can get the foreground package names currently running.
Source: How to get recent tasks on Android "L"?
这篇关于如何获得与Android的API 21棒棒堂最近的应用程序列表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文