在Android中我得到顶级活动名称 [英] get top activity name in Android L

查看:178
本文介绍了在Android中我得到顶级活动名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发使用getRunningTasks()函数来获取顶级活动名称的应用程序。但getRunningTasks()是Android的L. pcated德$ P $是否有任何其他的方式来获得在顶名(不包名)的棒棒糖。

I am developing an app which uses getRunningTasks() function to get the top activity name. But getRunningTasks() is deprecated in Android L. Is there any other way to get the top activity name (not package name) in Lollipop.

推荐答案

我找到了一个解决方案,以得到最高的活动名​​称上棒棒堂与新类 UsageStatsManager 在Android L移动加

I found a solution to get top activity name on Lollipop with the new Class UsageStatsManager added in Android L.

首先,你需要允许

<uses-permission
        android:name="android.permission.PACKAGE_USAGE_STATS"
        tools:ignore="ProtectedPermissions" />

和用户的必须启用该选项

然后用这个方法 queryEvents()

有一个简单的例子。

while (true) {
    final long INTERVAL = 1000;
    final long end = System.currentTimeMillis();
    final long begin = end - INTERVAL;
    final UsageEvents usageEvents = manager.queryEvents(begin, end);
    while (usageEvents.hasNextEvent()) {
        UsageEvents.Event event = new UsageEvents.Event();
        usageEvents.getNextEvent(event);
        if (event.getEventType() == UsageEvents.Event.MOVE_TO_FOREGROUND) {
            Log.d("event", "timestamp : " + event.getTimeStamp());
            Log.d("event", "package name : " + event.getPackageName());
            Log.d("event", "class name : " + event.getClassName());
        }
    }
    try {
        Thread.sleep(1000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}

当一个活动成为前景,你可以看到logcat的类名和包名。

When an activity become to foreground, you can see its class name and package name in Logcat.

对不起,我英文不好。

这篇关于在Android中我得到顶级活动名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆