Android How to - Determines if this application is top activity


We would like to know how to determines if this application is top activity.


The following methods get the top Activity from a Context.

The top activity information is stored in the RunningTaskInfo.

/*w  w  w .j a va 2s  .com*/
import java.util.List;

import android.content.ComponentName;
import android.content.Context;
public class Main{
   * Determines if this application is top activity
   * @param context Context to be examined
   * @return true if this application is a top activity; false otherwise
  public static boolean isTopApplication(Context context) {
    ComponentName activity = getTopActivity(context);
    if (activity == null) {
      return false;
    return activity.getPackageName().equals(context.getApplicationInfo().packageName);
  private static ComponentName getTopActivity(Context context) {
    ActivityManager am = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
    if (am == null) {
      return null;
    List<RunningTaskInfo> info = am.getRunningTasks(1);
    if (info == null) {
      return null;
    ComponentName activity = info.get(0).topActivity;
    return activity;