Android判断App是否在前台运行
16lz
2021-01-23
Android开发中,有时候需要判断App是否在前台运行。
代码实现如下:
private boolean isRunningForeground (Context context){ ActivityManager am = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE); ComponentName cn = am.getRunningTasks(1).get(0).topActivity; String currentPackageName = cn.getPackageName(); if(!TextUtils.isEmpty(currentPackageName) && currentPackageName.equals(getPackageName())) { return true ; } return false ;}
注意: AndroidManifest.xml中需增加 < uses-permission android:name = “android.permission.GET_TASKS” />
- protected static boolean isTopActivity(Activity activity){
String packageName = "xxxxx";
ActivityManager activityManager = (ActivityManager) activity.getSystemService(Context.ACTIVITY_SERVICE);
ListtasksInfo = activityManager.getRunningTasks(1);
if(tasksInfo.size() > 0){
System.out.println("---------------包名-----------"+tasksInfo.get(0).topActivity.getPackageName());
//应用程序位于堆栈的顶层
if(packageName.equals(tasksInfo.get(0).topActivity.getPackageName())){
return true;
}
}
return false;
} - 需要添加android.permission.GET_TASKS权限
更多相关文章
- Android:如何从堆栈中还原ProGuard混淆后的代码
- Android -- android app 能分配的最大内存堆栈问题
- 微软和亚马逊在Android方面的最新消息
- 使用arm-eabi-addr2line, ndk-stack工具跟踪Android调用堆栈
- android如何在C++中打印调用堆栈
- 【摘录】使用arm-eabi-addr2line, ndk-stack工具跟踪Android调用
- Google公开指责微软、苹果和甲骨文试图通过专利扼杀Android
- android Activity 堆栈和亲属关系