我有一个在StartActivity类中启动的重复闹钟。包是psychsoft.gps.v1代码似乎没有捕获警报是否启动。
if ((PendingIntent.getBroadcast(con, 13336,
new Intent("psychsoft.gps.v1"),
PendingIntent.FLAG_NO_CREATE) != null))
{
Log.i("aaa", "Alarm is already active");
Toast.makeText(con, "alarm already active", Toast.LENGTH_SHORT).show();
}
Calendar calGPS = Calendar.getInstance();
Intent intentGPS = new Intent(con, AlarmReceiver.class);
intentGPS.putExtra("alarm_message", "gps");
PendingIntent senderGPS = PendingIntent.getBroadcast(this, 13336, intentGPS, PendingIntent.FLAG_UPDATE_CURRENT);
// Get the AlarmManager service
AlarmManager amGPS = (AlarmManager) getSystemService(ALARM_SERVICE);
amGPS.setRepeating(AlarmManager.RTC_WAKEUP, calGPS.getTimeInMillis(),1000*60*5, senderGPS);
要测试此代码,我会运行一次以安排闹钟(安装应用程序)。然后我再次运行它(通过单击图标)尝试获取Toast或Log输出。我两个都没有。为什么?我最初的问题可能是通过将PendingIntent的请求代码与if语句的请求代码匹配来修复,但它没有解决问题。
答案 0 :(得分:0)
尝试创建并检查这样的意图:
Intent intentGPS = new Intent("psychsoft.gps.v1.MY_UNIQUE_ACTION");
和
if ((PendingIntent.getBroadcast(con, 13336,
new Intent("psychsoft.gps.v1.MY_UNIQUE_ACTION"),
PendingIntent.FLAG_NO_CREATE) != null))
{
Log.i("aaa", "Alarm is already active");
Toast.makeText(con, "alarm already active", Toast.LENGTH_SHORT).show();
}