2013-08-24 2 views
0

Я хочу создать Reminder.Я использую ниже код для генерации уведомления в определенное время и дату, установленные пользователем.Как получить дату и время из базы данных и создать уведомление в эту конкретную дату

public class MainActivity extends Activity { 
TimePicker timePicker; 
DatePicker datePicker; 
Button button1; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    button1 = (Button) findViewById(R.id.button1); 

    button1.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      timePicker = (TimePicker) findViewById(R.id.timePicker1); 
       datePicker = (DatePicker) findViewById(R.id.datePicker1);  
       AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);  

       Calendar calendar = Calendar.getInstance();  


       calendar.set(Calendar.YEAR, datePicker.getYear()); 
       calendar.set(Calendar.MONTH, datePicker.getMonth()); 
       calendar.set(Calendar.DAY_OF_MONTH, datePicker.getDayOfMonth());     
       calendar.set(Calendar.HOUR_OF_DAY, timePicker.getCurrentHour()); 
       calendar.set(Calendar.MINUTE, timePicker.getCurrentMinute()); 
       calendar.set(Calendar.SECOND, 0); 

       Intent inn = new Intent(MainActivity.this,AlaramDetail.class); 
       PendingIntent displayIntent = PendingIntent.getActivity(
         getBaseContext(), 0,inn, 0);  
       alarmManager.set(AlarmManager.RTC_WAKEUP, 
         calendar.getTimeInMillis(), displayIntent); 



     } 
    }); 

} 
} 

Ниже представлен класс AlaramDetail, который имеет код для уведомления о внесении изменений.

public class AlaramDetail extends Activity { 

@SuppressWarnings("deprecation") 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.detail); 
    NotificationManager nm = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE); 
    Notification notification = new Notification(android.R.drawable.stat_notify_more, "This is important notification",System.currentTimeMillis()); 
    String title = "pay attention"; 
    String detail = "this is implortant"; 
    Intent intent = new Intent(AlaramDetail.this,AlaramDetail.class); 
    finish(); 
    PendingIntent pintent = PendingIntent.getActivity(AlaramDetail.this, 0,intent ,0); 

    notification.setLatestEventInfo(AlaramDetail.this, title, detail, pintent); 

    notification.flags=Notification.FLAG_AUTO_CANCEL; 
    notification.defaults|=Notification.DEFAULT_SOUND; 
    notification.defaults|=Notification.DEFAULT_LIGHTS; 
    notification.defaults|=Notification.DEFAULT_VIBRATE; 
    nm.notify(1, notification); 
} 

} 

код выше работает правильно. После этого я создал базу данных, в которой хранятся несколько дат и времени, введенных пользователем. Дата хранения базы данных дата и время в виде строки. Теперь я хочу генерировать уведомление в определенные даты и время, хранящиеся в базе данных. Я не знаю, как передать дату и время от базы данных до calendar.set (int field, int value) commands.I думаю, я могу использовать курсор для получения даты и времени, но я не знаю, какое значение передать в где и где args.My база данных имеет три столбца имя, дата ,время.

ответ

1

Также лучше делать с хранением времени в миллисекундах, пока в базе данных ... это даст вам лучшую производительность ...

После получения данных, которые вы просто установить время, используя этот код

Calendar calender = Calendar.getInstance(); 
    calender.setTimeInMillis(TimeInMilli); 
Смежные вопросы