检查 alarmManager 是否已经 运行
Check If alarmManager has already been running
我读过这个问题:How to check if AlarmManager already has an alarm set?
Chris Knight 的答案可能是最正确的答案。但我不明白布尔行:
boolean alarmUp = (PendingIntent.getBroadcast(context, 0,
new Intent("com.my.package.MY_UNIQUE_ACTION"), <--------?
PendingIntent.FLAG_NO_CREATE) != null);
"com.my.package.MY_UNIQUE_ACTION" 来自哪里?
是来自清单还是什么?
抱歉重复了。
boolean alarmUp = (PendingIntent.getBroadcast(context, 0,
new Intent("com.my.package.MY_UNIQUE_ACTION"),
PendingIntent.FLAG_NO_CREATE) != null);
在上面的声明中,"com.mypackage" 是包名称,其中 "MY_UNIQUE_ACTION" 是 class 您处理 AlarmManager 的名称。
这里的关键是 FLAG_NO_CREATE,如 javadoc 中所述:如果所描述的 PendingIntent 不 已经存在,则只需 return null (而不是创建一个新的)
所以从上面的语句你可以知道如果 AlarmManager class 是 运行 则布尔值 return 为真,否则为假。
你可以通过多种方式获取包名
- 只需输入包名即可。
- 如描述in this link
Intent intent = new Intent("com.my.package.MY_UNIQUE_ACTION");
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
我读过这个问题:How to check if AlarmManager already has an alarm set?
Chris Knight 的答案可能是最正确的答案。但我不明白布尔行:
boolean alarmUp = (PendingIntent.getBroadcast(context, 0,
new Intent("com.my.package.MY_UNIQUE_ACTION"), <--------?
PendingIntent.FLAG_NO_CREATE) != null);
"com.my.package.MY_UNIQUE_ACTION" 来自哪里?
是来自清单还是什么?
抱歉重复了。
boolean alarmUp = (PendingIntent.getBroadcast(context, 0,
new Intent("com.my.package.MY_UNIQUE_ACTION"),
PendingIntent.FLAG_NO_CREATE) != null);
在上面的声明中,"com.mypackage" 是包名称,其中 "MY_UNIQUE_ACTION" 是 class 您处理 AlarmManager 的名称。
这里的关键是 FLAG_NO_CREATE,如 javadoc 中所述:如果所描述的 PendingIntent 不 已经存在,则只需 return null (而不是创建一个新的)
所以从上面的语句你可以知道如果 AlarmManager class 是 运行 则布尔值 return 为真,否则为假。
你可以通过多种方式获取包名
- 只需输入包名即可。
- 如描述in this link
Intent intent = new Intent("com.my.package.MY_UNIQUE_ACTION");
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0,
intent, PendingIntent.FLAG_UPDATE_CURRENT);