現在のアプリケーションがフロントにあるかどうかを判断する

930 ワード

//     

public class CommonTools {

	//           
	public static boolean isAppOnForeground(Context context) {
	
		ActivityManager activityManager = (ActivityManager) context.getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);
		String packageName = context.getApplicationContext().getPackageName();
	
		// Returns a list of application processes that are running on the device
		List appProcesses = activityManager.getRunningAppProcesses();
		if (appProcesses == null)
			return false;
		
		for (RunningAppProcessInfo appProcess : appProcesses) {
			// The name of the process that this object is associated with.
		    if (appProcess.processName.equals(packageName) 
		            	 && appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
		            return true;
		        }
		    }
		
		    return false;
	}
}