現在、私はAndroid のBroadcastReceiver、Service、および AlarmManagerに取り組んでおり、プロジェクトの機能の 1 つを開発しています。特定の日の特定の時間にタスクをスケジュールする必要があります。
例:-
月曜日 - 午前 9:00 & 午後 5:00
火曜日 - 午前 9:00 & 午後 5:00
水曜日 - 午前 9:00 & 午後 5:00
木曜日 - 午前 9:00 & 午後 5:00
金曜日 - 午前 9:00 & 午後 5:00
土曜日 - 午前 10:00 と午後 10:00
日曜日 - 午前 10:00 & 午後 10:00
私が今まで行ってきたことは、1 つのアクティビティとブロードキャストレシーバーを作成することです。ボタンをクリックすると、60 秒ごとにブロードキャスト レシーバが呼び出されます。これが私のコードスニペットです。しかし、上記の週に従ってタスクをスケジュールしたいと考えています。上記のようにタスクをスケジュールする方法を教えてください。
コード:-
public class AlarmDemoActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button buttonStart = (Button)findViewById(R.id.start);
buttonStart.setOnClickListener(new Button.OnClickListener(){
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent myIntent = new Intent(getBaseContext(),
MyScheduledReceiver.class);
PendingIntent pendingIntent
= PendingIntent.getBroadcast(getBaseContext(),
0, myIntent, 0);
AlarmManager alarmManager
= (AlarmManager)getSystemService(ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 10);
long interval = 60 * 1000; //
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(), interval, pendingIntent);
finish();
}});
}
}
ブロードキャストレシーバー:-
public class MyScheduledReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
/*Intent scheduledIntent = new Intent(context, MyScheduledActivity.class);
scheduledIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(scheduledIntent);*/
System.out.println("Make Phone Silent");
}
}
すべての提案とヒントを歓迎します。