Tôi muốn lặp lại công việc của mình vào mỗi Thứ Hai lúc 09:00 AM & 05:00 PM. Tôi đã sử dụng mã sau cho điều đó nhưng tôi không thể lặp lại nhiệm vụ.Báo thức lặp lại vào mỗi thứ Hai trong Android usig AlarmManager/BroadcastReceiver
Hoạt động Mã: -
public class AndroidScheduledActivity extends Activity {
/** Called when the activity is first created. */
int id = 115;
Intent myIntent;
PendingIntent pendingIntent;
AlarmManager alarmManager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button buttonStart = (Button)findViewById(R.id.start);
myIntent = new Intent(getBaseContext(), MyScheduledReceiver.class);
myIntent.putExtra("id", id);
pendingIntent = PendingIntent.getBroadcast(getBaseContext(), id, myIntent, 0);
alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
buttonStart.setOnClickListener(new Button.OnClickListener(){
public void onClick(View arg0) {
// TODO Auto-generated method stub
setForMonday();
finish();
}});
}
public void setForMonday() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_WEEK,2);
calendar.set(Calendar.HOUR,09);
calendar.set(Calendar.MINUTE, 00);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
System.out.println("Old is [email protected] :== " + calendar.getTime());
long interval = calendar.getTimeInMillis() + 604800000L;
System.out.println("Next Millis = " + interval);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), interval, pendingIntent);
}
}
Lưu ý: - Tôi đếm khoảng thời gian dựa trên 86400000 * 7 = 604.800.000;
Receiver: -
public class MyScheduledReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
System.out.println("Receiver");
}
}
Nếu ai có bất kỳ ý tưởng xin vui lòng giúp đỡ. Cảm ơn
Chỉ cần thử và kiểm tra thứ hai là ngày 2 hoặc 1 Tôi nghi ngờ về điều đó, khác Thật sự tôi không thấy nhiều bất kỳ vấn đề trong mã của bạn, có thể là trong thử nghiệm của bạn, sau khi cài đặt báo động này thay đổi thiết bị/giờ giả lập của bạn 9AM và Ngày thứ hai tới..và sẽ báo động tôi chắc chắn. – MKJParekh
Tôi gặp sự cố. Của nó trong khoảng thời gian. Thay cho khoảng thời gian tôi đã sử dụng AlarmManager.INTERVAL_DAY * 7 trong phương thức setRepeating. – Scorpion