public class SystemUtil { /** * 判断当前activity是否在栈顶 * * @param context * @return */ public static boolean isRunningForeground(Context context) { String packageName = getPackageName(context); String topActivityClassName = getTopActivityName(context); if (packageName != null && topActivityClassName != null && topActivityClassName.startsWith(packageName)) { return true; } else { return false; } } /** * 获取栈顶activity名称 * * @param context * @return */ public static String getTopActivityName(Context context) { String topActivityClassName = null; ActivityManager activityManager = (ActivityManager) (context .getSystemService(Context.ACTIVITY_SERVICE)); List<RunningTaskInfo> runningTaskInfos = activityManager .getRunningTasks(1); if (runningTaskInfos != null) { ComponentName f = runningTaskInfos.get(0).topActivity; topActivityClassName = f.getClassName(); } return topActivityClassName; } /** * 获取包名 * * @param context * @return */ public static String getPackageName(Context context) { String packageName = context.getPackageName(); return packageName; } /** * 返回当前程序版本名 */ public static String getAppVersionName(Context context) { String versionName = ""; try { // ---get the package info--- PackageManager pm = context.getPackageManager(); PackageInfo pi = pm.getPackageInfo(context.getPackageName(), 0); versionName = pi.versionName; if (versionName == null || versionName.length() <= 0) { return ""; } } catch (Exception e) { Log.e("VersionInfo", "Exception", e); } return versionName; } /** * 返回当前程序版本号 */ public static int getAppVersionCode(Context context) { int versonCode = 0; try { // ---get the package info--- PackageManager pm = context.getPackageManager(); PackageInfo pi = pm.getPackageInfo(context.getPackageName(), 0); versonCode = pi.versionCode; } catch (Exception e) { Log.e("VersionInfo", "Exception", e); } return versonCode; } }