android - Intent.putExtras 不一致

标签 android android-intent alarmmanager

AlarmManager 的情况很奇怪。我正在使用 AlarmManager 安排一个事件并使用 intent.putExtra 传递一个字符串。绳子要么静音要么振动,当接收器触发电话时,电话应该关闭铃声或将电话设置为振动。日志语句每次都正确输出期望值。

        Intent intent;
        if (eventType.equals("start")) {
            intent = new Intent(context, SReceiver.class);
        } else {
            intent = new Intent(context, EReceiver.class);
        }
        intent.setAction(eventType+Long.toString(newId));
        Log.v("EditQT",ringerModeType.toUpperCase());
        intent.putExtra("ringerModeType", ringerModeType.toUpperCase());
        PendingIntent appIntent = PendingIntent.getBroadcast(context, 0,
                intent, 0);

        AlarmManager alarmManager = (AlarmManager) getSystemService     (Context.ALARM_SERVICE);
        alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
                appIntent);

当警报执行时触发的接收器也有一个日志语句,我第一次看到该语句输出预期的字符串 SILENT 或 VIBRATE 但对于每个后续执行,输出显示接收器端的原始值.警报执行,然后我将 putExtra 的值更改为相反的字符串,并且接收器仍然显示先前的值事件,尽管上面代码的调用显示新值已传入。setAction 的值每次都是相同的。

audioManager = (AudioManager) context.getSystemService(Activity.AUDIO_SERVICE);
Log.v("Start",intent.getExtras().get("ringerModeType").toString());
if (intent.getExtras().get("ringerModeType").equals("SILENTMODE")) {
audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
} else {
audioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
}

有什么想法吗?

最佳答案

有人问过你的问题 six hours ago .

如果您同时拥有多个具有不同附加功能的 PendingIntents,您将需要改变 Intents 中的其他内容,例如操作字符串或 Uri,如上面链接到的问题中所述。

如果您一次只有一个 PendingIntent,但您的额外可能会有所不同,只需在调用 getBroadcast() 时使用 FLAG_UPDATE_CURRENT >.

关于android - Intent.putExtras 不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2845613/

相关文章:

java - 从网络服务请求信息时未获得完整结果

android - 单击项目时,自定义 ListView 不会在第二个 Activity 中显示图像

java - 为什么我的 file.exists() 总是返回 false?

android - 从 Air 打开 'new window' 中的另一个 Android 应用程序

java - AlarmManager 不执行任何操作

Android 设备重启检查指定的报警时间是否过去

android - AlarmManager 与 Handler.postDelayed

android - 将 TextView 转换为字符串(某种)Android

android - 如何以编程方式关闭 Android 设置菜单?

android - 为什么MQTT客户端无法重连?