可能需要需要gettasks权限
http://www.jb51.net/article/67656.htm
//判断程序是否运行的代码
public static boolean isChatWindowActivityRunning(Context context) {
List<String> activities = new ArrayList<String>();
activities.add("com.yuge.yixin.chat.ChatWindowActivity");
activities.add("com.yuge.yixin.chat.peer.PeerConsultChatWindowActivity");
activities.add("com.yuge.yixin.pn.PublicNumberMsgPatternActivity");
ActivityManager am = (ActivityManager) context
.getSystemService(Activity.ACTIVITY_SERVICE);
List<RunningTaskInfo> taskInfoList = am.getRunningTasks(Integer.MAX_VALUE);
for (RunningTaskInfo taskInfo : taskInfoList) {
if (activities.contains(taskInfo.topActivity
.getClassName())) { // 说明它已经启动了
return true;
}
}
return false;
}
//这是判断单个Activity的
//要判断app 得用另一个方法RecentTaskInfo 用这个
//获取程序的运行状态!
public static boolean isAppOnForeground(Context context)
{
ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
String packageName = context.getPackageName();
List<RecentTaskInfo> appTask = activityManager.getRecentTasks(Integer.MAX_VALUE, 1);
if (appTask == null)
{
return false;
}
if (appTask.get(0).baseIntent.toString().contains(packageName))
{
return true;
}
return false;
}
判断当前应用程序是否处于前台
/**
* 判断当前应用程序是否处于前台
*/
public static boolean isAppOnForeground(Context context)
{
ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
String packageName = context.getPackageName();
List<ActivityManager.RecentTaskInfo> appTask = activityManager.getRecentTasks(Integer.MAX_VALUE, 1);
if (appTask == null) {
return false;
}
if (appTask.get(0).baseIntent.toString().contains(packageName)) {
return true;
}
return false;
}