我做的報警項目一次報警,如何設置的android
我想設置一個時間報警。但我面臨的問題設置針鋒相對,
我的代碼;
public void loadCalender(String month) {
try {
Cursor cursor = null;
Database db = new Database(getApplicationContext());
cursor = db.getSelectedCalenderDetails(month);
if (cursor.getCount() != 0) {
if (cursor.moveToFirst()) {
do {
String text = cursor.getString(cursor
.getColumnIndex("event"));
String title = "News/Events";
String dates = cursor.getString(cursor
.getColumnIndex("date"));
String yr = dates.substring(0, 4);
int year = Integer.parseInt(yr);
String mon = dates.substring(5);
String mo = mon.substring(0, 2);
int months = Integer.parseInt(mo);
String da = dates.substring(9);
int day = Integer.parseInt(da);
// Ask our service to set an alarm for that date,
// this
// activity talks to the client that talks to the
// service
set_alarm(year, months, day, title, text);
System.out.println(dates);
} while (cursor.moveToNext());
}
}
cursor.close();
} catch (Exception e) {
e.printStackTrace();
}
// looping through All Contacts
}
public void set_alarm(int year, int month, int day, String title,
String text) {
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(getApplicationContext());
// etc
Calendar cal = Calendar.getInstance();
int hour = prefs.getInt("PREF_HOUR", 0);
int min = prefs.getInt("PREF_MIN", 0);
if(hour == 0 && min == 0){
cal.set(Calendar.MONTH, month - 1);
cal.set(Calendar.YEAR, year);
cal.set(Calendar.DAY_OF_MONTH, 7);
cal.set(Calendar.HOUR_OF_DAY, 15);
cal.set(Calendar.MINUTE, min);
}else
{
cal.set(Calendar.MONTH, month - 1);
cal.set(Calendar.YEAR, year);
cal.set(Calendar.DAY_OF_MONTH, hour);
cal.set(Calendar.HOUR_OF_DAY, min);
cal.set(Calendar.MINUTE, min);
}
Intent intent = new Intent(getApplicationContext(), AlarmActivity.class);
intent.putExtra("title", title);
intent.putExtra("text", text);
PendingIntent pendingIntent = PendingIntent.getBroadcast(
getApplicationContext(), 1, intent,
PendingIntent.FLAG_ONE_SHOT);
AlarmManager alarmManager = (AlarmManager) getApplicationContext()
.getSystemService(getApplicationContext().ALARM_SERVICE);
/*
* alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
* pendingIntent);
*/
alarmManager.cancel(pendingIntent); // cancel any existing alarms
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,cal.getTimeInMillis(),AlarmManager.INTERVAL_DAY,
pendingIntent);
}
這裏警報推動始終處於啓用狀態,應用程序打開時...
笏錯誤做了我在我的代碼做.. plz幫助我設定一個時間報警
在此先感謝
我還需要處理設備的啓動嗎?或者即使在設備重新啓動後它仍能工作?如果它應該被調用,但是該設備已關閉(例如沒有電池),現在該設備已打開? – 2016-03-17 09:35:02
@androiddeveloper你不必擔心設備啓動。 RTC方法將鬧鐘設置爲特定時間。所以如果手機在那段時間沒有運行,那麼下次手機啓動時會觸發鬧鐘。 – Senhor 2016-08-12 17:35:08
@Senhor我明白了。時間變化的情況如何(例如「夏令時」)?如果我將它設置爲在X上報警,但在X之前,國家會將X更改爲X + 1,然後X會上升。這意味着整個小時都被跳過了。它會對鬧鐘做什麼? – 2016-08-12 23:32:29