我试图发送两个未决意图,可以说我在1分钟后发出了第一个意图,第二分钟后我的第二个意图。我对他们都使用相同的动作。发生的事情只是第二个意图有效,但两分钟后也是如此。
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);
广播回接收器作为folows ...
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);
}
}
最后一个意图将始终替换为早期。因此,有2个解决方案,一种是您定义多个操作,另一个(最佳一个(管理DB中的所有呼叫。这意味着在执行删除该呼叫并再次接到即将到达最低的呼叫后,请首先首先接听电话。
。