get top activity name in Android L

家住魔仙堡 提交于 2019-12-10 11:52:10

问题


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.


回答1:


Class<?> currentClassName; // Declare Globally 

    Activity activity = (Activity) context;//casting context into activity
    try
    {
        currentClassName = Class.forName(activity.getClass().getName()); //getting the current activity's class name from activity object
    }
    catch (ClassNotFoundException e)
    {
        e.printStackTrace();
    }

Please read SO Answer




回答2:


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

First you need the permission

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

And the user must enable this option.

Then use this method queryEvents()

There is a simple example.

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();
    }
}

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



来源:https://stackoverflow.com/questions/31980976/get-top-activity-name-in-android-l

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!