如果我通过 FLAG_ONE_SHOT 添加 id,如何获取待定意图的 id?
how to get id of pending intent, if i added id by FLAG_ONE_SHOT?
我正在制作闹钟应用程序,用户可以添加多个具有不同音量和铃声的闹钟。在广播接收器我想获得 id(我在 alarmpref activity:
设置了 id
public void setAlarm(Calendar calendar){
Intent intent = new Intent(getBaseContext(), AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), PendingIntent.FLAG_ONE_SHOT, intent, 0);
AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 86400000, pendingIntent);
Intent i = new Intent(this, AlarmReceiver.class);
i.putExtra("id", 1);
startActivity(i);
}
并用它大声播放选定的铃声。谢谢
您需要向 Intent 对象添加 Extras 如下:
public void setAlarm(Calendar calendar){
int requestCode=100;
Intent intent = new Intent(getBaseContext(), AlarmReceiver.class);
intent.putExtra("someid",123);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), requestCode, intent, PendingIntent.FLAG_ONE_SHOT);
AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 86400000, pendingIntent);
}
也不需要写:
Intent i = new Intent(this, AlarmReceiver.class);
i.putExtra("id", 1);
startActivity(i);
当达到报警时间时,AlarmReceiver 会自动启动。
我正在制作闹钟应用程序,用户可以添加多个具有不同音量和铃声的闹钟。在广播接收器我想获得 id(我在 alarmpref activity:
设置了 id public void setAlarm(Calendar calendar){
Intent intent = new Intent(getBaseContext(), AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), PendingIntent.FLAG_ONE_SHOT, intent, 0);
AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 86400000, pendingIntent);
Intent i = new Intent(this, AlarmReceiver.class);
i.putExtra("id", 1);
startActivity(i);
}
并用它大声播放选定的铃声。谢谢
您需要向 Intent 对象添加 Extras 如下:
public void setAlarm(Calendar calendar){
int requestCode=100;
Intent intent = new Intent(getBaseContext(), AlarmReceiver.class);
intent.putExtra("someid",123);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), requestCode, intent, PendingIntent.FLAG_ONE_SHOT);
AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 86400000, pendingIntent);
}
也不需要写:
Intent i = new Intent(this, AlarmReceiver.class);
i.putExtra("id", 1);
startActivity(i);
当达到报警时间时,AlarmReceiver 会自动启动。