Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

//package com.java2s;
// Use of this source code is governed by a BSD-style license that can be

import android.app.ActivityManager.AppTask;
import android.app.ActivityManager.RecentTaskInfo;

import android.content.Intent;

import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;

import android.util.Log;

public class Main {
    public static final String TAG = "DocumentUtilities";

    /**
     * Given an AppTask retrieves the task class name.
     * @param task The app task to use.
     * @param pm The package manager to use for resolving intent.
     * @return Fully qualified class name or null if we were not able to
     * determine it.
     */
    public static String getTaskClassName(AppTask task, PackageManager pm) {
        RecentTaskInfo info = getTaskInfoFromTask(task);
        if (info == null)
            return null;

        Intent baseIntent = info.baseIntent;
        if (baseIntent == null) {
            return null;
        } else if (baseIntent.getComponent() != null) {
            return baseIntent.getComponent().getClassName();
        } else {
            ResolveInfo resolveInfo = pm.resolveActivity(baseIntent, 0);
            if (resolveInfo == null)
                return null;
            return resolveInfo.activityInfo.name;
        }
    }

    /**
     * Returns the RecentTaskInfo for the task, if the ActivityManager succeeds in finding the task.
     * @param task AppTask containing information about a task.
     * @return The RecentTaskInfo associated with the task, or null if it couldn't be found.
     */
    public static RecentTaskInfo getTaskInfoFromTask(AppTask task) {
        RecentTaskInfo info = null;
        try {
            info = task.getTaskInfo();
        } catch (IllegalArgumentException e) {
            Log.e(TAG, "Failed to retrieve task info: ", e);
        }
        return info;
    }
}