Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void saveState() {
- DatabaseHelper myDbHelper = new DatabaseHelper(ReminderEditActivity.this);
- try {
- myDbHelper.createDataBase();
- } catch (IOException ioe) {
- throw new Error("Unable to create database");
- }
- try {
- myDbHelper.openDataBase();
- }catch(SQLException sqle){
- throw sqle;
- }
- c=myDbHelper.query("tblmain", null, null, null, null,null, null);
- if(c.moveToFirst())
- {
- do {
- mRowId = c.getLong(0);
- String datetime = c.getString(8);
- SimpleDateFormat dateTimeFormat = new SimpleDateFormat(DATE_TIME_FORMAT);
- Date date = null;
- try {
- date = dateTimeFormat.parse(datetime);
- mCalendar.setTime(date);
- } catch (ParseException e) {
- Log.e("ReminderEditActivity", e.getMessage(), e);
- }
- mCalendar.setTime(date);
- new ReminderManager(this).setReminder(mRowId, mCalendar);
- } while (c.moveToNext());
- }
- }
- public class ReminderManager {
- private Context mContext;
- private AlarmManager mAlarmManager;
- public ReminderManager(Context context) {
- mContext = context;
- mAlarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
- }
- public void setReminder(Long taskId, Calendar when) {
- Intent i = new Intent(mContext, OnAlarmReceiver.class);
- i.putExtra(RemindersDbAdapter.KEY_eventid, (long)taskId);
- PendingIntent pi = PendingIntent.getBroadcast(mContext, 0, i, PendingIntent.FLAG_ONE_SHOT);
- mAlarmManager.set(AlarmManager.RTC_WAKEUP, when.getTimeInMillis(), pi);
- }
- }
- public class OnAlarmReceiver extends BroadcastReceiver {
- private static final String TAG = ComponentInfo.class.getCanonicalName();
- @Override
- public void onReceive(Context context, Intent intent) {
- Log.d(TAG, "Received wake up from alarm manager.");
- long rowid = intent.getExtras().getLong(RemindersDbAdapter.KEY_eventid);
- WakeReminderIntentService.acquireStaticLock(context);
- Intent i = new Intent(context, ReminderService.class);
- i.putExtra(RemindersDbAdapter.KEY_eventid, rowid);
- context.startService(i);
- }
- }
- public class ReminderService extends WakeReminderIntentService {
- public ReminderService() {
- super("ReminderService");
- }
- @Override
- void doReminderWork(Intent intent) {
- Log.d("ReminderService", "Doing work.");
- Long rowId = intent.getExtras().getLong(RemindersDbAdapter.KEY_eventid);
- NotificationManager mgr = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
- Intent notificationIntent = new Intent(this, ReminderEditActivity.class);
- notificationIntent.putExtra(RemindersDbAdapter.KEY_eventid, rowId);
- PendingIntent pi = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_ONE_SHOT);
- Notification note=new Notification(android.R.drawable.stat_sys_warning, getString(R.string.notify_new_task_message), System.currentTimeMillis());
- note.setLatestEventInfo(this, getString(R.string.notify_new_task_title), getString(R.string.notify_new_task_message), pi);
- note.defaults |= Notification.DEFAULT_SOUND;
- note.flags |= Notification.FLAG_AUTO_CANCEL;
- // An issue could occur if user ever enters over 2,147,483,647 tasks. (Max int value).
- // I highly doubt this will ever happen. But is good to note.
- int id = (int)((long)rowId);
- mgr.notify(id, note);
- }
- }
- String datetime = c.getString(8);
Add Comment
Please, Sign In to add comment