我正在尝试发送两个未决意图让我说我在1分钟后发送了我的第一个意图,并在2分钟后发送了我的第二个意图。我对它们使用相同的动作。 发生的事情只是第二个意图有效但2分钟后也是如此。
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent;
intent = new Intent(ALARM_ACTION_NAME);
if(val1) {
intent.putExtra("TYPE","SILENT");
}
else {
intent.putExtra("TYPE", "RING" );
}
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 2,intent, 0);
广播接收者如下所示......
if(ALARM_ACTION_NAME.equals(intent.getAction())){
Log.i("this", intent.getStringExtra("TYPE"));
if(intent.getStringExtra("TYPE").equals("SILENT")) {
Toast.makeText(context, "illumy set the phone to Silent", Toast.LENGTH_LONG).show();
AudioManager am = (AudioManager) context.getSystemService(context.AUDIO_SERVICE);
am.setStreamVolume(AudioManager.STREAM_RING, 0, 0);
am.setStreamVolume(AudioManager.STREAM_MUSIC, 0 , 0);
}
else if (intent.getStringExtra("TYPE").equals("RING")){
Toast.makeText(context, "Phone set the phone to Ring", Toast.LENGTH_LONG).show();
AudioManager am = (AudioManager) context.getSystemService(context.AUDIO_SERVICE);
am.setStreamVolume(AudioManager.STREAM_RING, 100, 0);
am.setStreamVolume(AudioManager.STREAM_MUSIC, 30 , 0);
}
}
答案 0 :(得分:1)
最后的意图将始终由之前替换。所以有两个解决方案,一个是你定义多个动作,另一个是(最好一个)管理DB中的所有呼叫。它意味着在执行后首先调度最低即将召唤的呼叫,删除该呼叫并再次获得即将到来的最低呼叫。