AlarmClock 仅一次,每年特定日期特定时间
AlarmClock just once,every year at specific day at specific hour
我对 android 开发很感兴趣,我想知道是否可以在 android 每年的特定日期特定时间播放一些歌曲,以及如何播放。谢谢!
public class AlarmActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_alarm);
Intent myIntent = new Intent(AlarmActivity.this , MyBroadcastReceiver.class);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
PendingIntent pendingIntent = PendingIntent.getService(AlarmActivity.this, 0, myIntent, 0);
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 02);
cal.set(Calendar.MINUTE, 18);
cal.set(Calendar.SECOND, 55);
alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 60000 , pendingIntent); //set repeating every year
}
}
广播:
public class MyBroadcastReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Broadcast Received.", Toast.LENGTH_LONG).show();
// Vibrate the mobile phone
Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(2000);
}
}
查看official documentation了解如何设置闹钟。
至于你的具体目标,你可以在当前的闹钟响起时为下一年设置一个新的闹钟。
Intent myIntent = new Intent(MainActivity.this , NotifyService.class);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
pendingIntent = PendingIntent.getService(ThisApp.this, 0, myIntent, 0);
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, YOUR_HOUR);
cal.set(Calendar.MINUTE, 00);
cal.set(Calendar.SECOND, 00);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 31556952000 , pendingIntent); //set repeating every year
希望这对您有所帮助..
我对 android 开发很感兴趣,我想知道是否可以在 android 每年的特定日期特定时间播放一些歌曲,以及如何播放。谢谢!
public class AlarmActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_alarm);
Intent myIntent = new Intent(AlarmActivity.this , MyBroadcastReceiver.class);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
PendingIntent pendingIntent = PendingIntent.getService(AlarmActivity.this, 0, myIntent, 0);
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 02);
cal.set(Calendar.MINUTE, 18);
cal.set(Calendar.SECOND, 55);
alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 60000 , pendingIntent); //set repeating every year
}
}
广播:
public class MyBroadcastReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Broadcast Received.", Toast.LENGTH_LONG).show();
// Vibrate the mobile phone
Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(2000);
}
}
查看official documentation了解如何设置闹钟。
至于你的具体目标,你可以在当前的闹钟响起时为下一年设置一个新的闹钟。
Intent myIntent = new Intent(MainActivity.this , NotifyService.class);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
pendingIntent = PendingIntent.getService(ThisApp.this, 0, myIntent, 0);
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, YOUR_HOUR);
cal.set(Calendar.MINUTE, 00);
cal.set(Calendar.SECOND, 00);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 31556952000 , pendingIntent); //set repeating every year
希望这对您有所帮助..