我们可能在实现notification的逻辑时,需要判断应用是在打开还是后台的状态,如果在后台状态,就发送Notification提醒。
/** * 判断程序是否打开 * @return */ public static boolean isRunningInForeground() { boolean isActivityFound = false; ActivityManager activityManager = (ActivityManager) MyApplication.getContext().getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningTaskInfo> services = activityManager .getRunningTasks(1); if (services.get(0).topActivity.getPackageName().toString() .equalsIgnoreCase(MyApplication.getContext().getPackageName().toString())) { isActivityFound = true; } return isActivityFound; }
<code style="margin: 0px; padding: 0px; border: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, sans-serif; white-space: inherit;"><span class="tag" style="margin: 0px; padding: 0px; border: 0px; color: rgb(125, 39, 39);"><uses-permission</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; color: rgb(48, 51, 54);"> </span><span class="atn" style="margin: 0px; padding: 0px; border: 0px; color: rgb(230, 67, 32);">android:name</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; color: rgb(48, 51, 54);">=</span><span class="atv" style="margin: 0px; padding: 0px; border: 0px; color: rgb(15, 116, 189);">"android.permission.GET_TASKS"</span><span class="tag" style="margin: 0px; padding: 0px; border: 0px; color: rgb(125, 39, 39);">/></span></code>
如果想判断别的应用,修改查询的app名
if (services.get(0).topActivity.getPackageName().toString() .equalsIgnoreCase(查询的app包名)) { isActivityFound = true; }