/**
* 加入5.0获取当前 topactivity的包名(只能判断应用不再前台) modified by yj.zhang on 2016/10/10
* @param context
* @return
*/
public static String getTopPackgeName(Context context)
{
String packgeName = " ";
if (Build.VERSION.SDK_INT >= 21)
{
LOG.print("--------------------->getTopClassName-- 21--->");
final int PROCESS_STATE_TOP = 2;
ActivityManager.RunningAppProcessInfo currentInfo = null;
Field field = null;
try
{
field = ActivityManager.RunningAppProcessInfo.class.getDeclaredField("processState");
}
catch (Exception ignored)
{
ignored.printStackTrace();
}
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> appList = am.getRunningAppProcesses();
for (ActivityManager.RunningAppProcessInfo app : appList)
{
if (app.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND && app.importanceReasonCode == ActivityManager.RunningAppProcessInfo.REASON_UNKNOWN)
{
Integer state = null;
try
{
state = field.getInt(app);
}
catch (Exception e)
{
e.printStackTrace();
}
if (state != null && state == PROCESS_STATE_TOP)
{
currentInfo = app;
packgeName = currentInfo.processName;
break;
}
}
}
}else{
ActivityManager mActivityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
if( mActivityManager.getRunningTasks(1).size() > 0 )
{
ComponentName cn = mActivityManager.getRunningTasks(1).get(0).topActivity;
packgeName = cn.getPackageName();
}
}
LOG.print("packgeName=" + packgeName);
return packgeName;
}
* 加入5.0获取当前 topactivity的包名(只能判断应用不再前台) modified by yj.zhang on 2016/10/10
* @param context
* @return
*/
public static String getTopPackgeName(Context context)
{
String packgeName = " ";
if (Build.VERSION.SDK_INT >= 21)
{
LOG.print("--------------------->getTopClassName-- 21--->");
final int PROCESS_STATE_TOP = 2;
ActivityManager.RunningAppProcessInfo currentInfo = null;
Field field = null;
try
{
field = ActivityManager.RunningAppProcessInfo.class.getDeclaredField("processState");
}
catch (Exception ignored)
{
ignored.printStackTrace();
}
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> appList = am.getRunningAppProcesses();
for (ActivityManager.RunningAppProcessInfo app : appList)
{
if (app.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND && app.importanceReasonCode == ActivityManager.RunningAppProcessInfo.REASON_UNKNOWN)
{
Integer state = null;
try
{
state = field.getInt(app);
}
catch (Exception e)
{
e.printStackTrace();
}
if (state != null && state == PROCESS_STATE_TOP)
{
currentInfo = app;
packgeName = currentInfo.processName;
break;
}
}
}
}else{
ActivityManager mActivityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
if( mActivityManager.getRunningTasks(1).size() > 0 )
{
ComponentName cn = mActivityManager.getRunningTasks(1).get(0).topActivity;
packgeName = cn.getPackageName();
}
}
LOG.print("packgeName=" + packgeName);
return packgeName;
}