アラームを設定するクラスがありますが、これらのアラームをさらに 10 個ほど設定する必要があります。クラスを複製する代わりに、クラスの新しいインスタンスを作成してアラーム時間を設定する方法はありますか?
これが私のコードです。
import java.util.Calendar;
import java.lang.String;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.ListActivity;
import android.app.PendingIntent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.content.Intent;
import android.widget.Button;
import android.widget.Toast;
public class Alarm extends Activity {
/* for logging - see my tutorial on debuggin Android apps for more detail */
private static final String TAG = "SomeApp ";
protected Toast mToast;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setAlarm();
}
public void setAlarm() {
try {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_YEAR, 0);
cal.set(Calendar.HOUR_OF_DAY, 9);
cal.set(Calendar.MINUTE, 01);
cal.set(Calendar.SECOND, 0);
Intent intent = new Intent(Alarm.this, Alarm1.class);
PendingIntent sender = PendingIntent.getBroadcast(this, 1234567, intent, 0);
PendingIntent sende2 = PendingIntent.getBroadcast(this, 123123, intent, 0);
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), sender); // to be alerted 30 seconds from now
am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), sende2); // to be alerted 15 seconds from now
/* To show how alarms are cancelled we will create a new Intent and a new PendingIntent with the
* same requestCode as the PendingIntent alarm we want to cancel. In this case, it is 1234567.
* Note: The intent and PendingIntent have to be the same as the ones used to create the alarms.
*/
Intent intent1 = new Intent(Alarm.this, Alarm1.class);
PendingIntent sender1 = PendingIntent.getBroadcast(this, 1234567, intent1, 0);
AlarmManager am1 = (AlarmManager) getSystemService(ALARM_SERVICE);
am1.cancel(sender1);
} catch (Exception e) {
Log.e(TAG, "ERROR IN CODE:"+e.toString());
}
}
};
b1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Intent i = new Intent(getContext(),Alarm.class);
//Code below is from another class which is where im calling the alarm application
// ctx.startActivity (i);// start the Alarm class activity (class)public void onClick(View v) {
Alarm a = new Alarm ();
a.setAlarm();
b1.setText(prod);
}
});
上記のコードは別のクラスからのものであり、ボタンをクリックすると、ユーザーはリマインダーを設定できます (ボタンはアラーム クラスを呼び出します。それを機能させるにはインテントを使用するだけです。単に setAlarm メソッドを呼び出そうとしましたが、それは機能しませんでした。)うまくいきません。カレンダーの新しいインスタンスを作成し、ボタン ハンドラに時刻を設定することもできます。次に、そのインスタンスをアラーム クラスに渡す必要があります。それが可能かどうかわかりますか?