アラーム マネージャーを使用して、異なる時間に 3 つのアラームをトリガーしようとしています。これが私のコードです (alarm1、alarm2、alarm3 は、私のコードで以前に設定された 3 つのカレンダー オブジェクトであることに注意してください):
AlarmNum=1;
new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
// TODO Auto-generated method stub
Intent myIntent = new Intent(MainActivity.this,
MyAlarmService.class);
pendingIntent = PendingIntent.getService(MainActivity.this, 0,
myIntent, 0);
if (AlarmNum == 1)
alarmManager.set(AlarmManager.RTC_WAKEUP,
alarm1.getTimeInMillis(), pendingIntent);
else if (AlarmNum == 2)
alarmManager.set(AlarmManager.RTC_WAKEUP,
alarm2.getTimeInMillis(), pendingIntent);
else
alarmManager.set(AlarmManager.RTC_WAKEUP,
alarm3.getTimeInMillis(), pendingIntent);
Toast.makeText(MainActivity.this, "Start Alarm",
Toast.LENGTH_LONG).show();
}
};
上記のコードでは、以下に示す MyAlarmService クラスを呼び出すインテントを開始します。
public class MyAlarmService extends Service {
MainActivity instance;
MediaPlayer mp;
@Override
public void onCreate() {
// TODO Auto-generated method stub
Toast.makeText(this, "MyAlarmService.onCreate()", Toast.LENGTH_LONG)
.show();
mp = MediaPlayer.create(this, R.raw.alarmtone);
instance = new MainActivity();
}
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
Toast.makeText(this, "MyAlarmService.onBind()", Toast.LENGTH_LONG)
.show();
return null;
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
Toast.makeText(this, "MyAlarmService.onDestroy()", Toast.LENGTH_LONG)
.show();
}
@Override
public void onStart(Intent intent, int startId) {
// TODO Auto-generated method stub
super.onStart(intent, startId);
Toast.makeText(this, "MyAlarmService.onStart()", Toast.LENGTH_LONG)
.show();
mp.start();
instance.setAlarmNum(instance.getAlarmNum() + 1);
}
@Override
public boolean onUnbind(Intent intent) {
// TODO Auto-generated method stub
mp.release();
mp.reset();
Toast.makeText(this, "MyAlarmService.onUnbind()", Toast.LENGTH_LONG)
.show();
return super.onUnbind(intent);
}
トーストが表示されず、アラームも表示されないため、ここに問題があると思います。