如果我两次发送相同的待处理意图,会发生什么



我试图发送两个未决意图,可以说我在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中的所有呼叫。这意味着在执行删除该呼叫并再次接到即将到达最低的呼叫后,请首先首先接听电话。

相关内容

  • 没有找到相关文章

最新更新