0

私はアンドロイドプログラミングが初めてで、リマインダーアプリケーションに取り組んでいます。これで、日付と時刻を含むすべての情報を SQLlite データベースに保存しました。私の質問は、データベースに保存されているアラームをAndroidの現在の時刻と一致させる方法です

4

3 に答える 3

1

データベースに問い合わせる カレンダーと比較する

Calendar c = Calendar.getInstance();
c.set(Calendar.MONTH, Calendar.MARCH);
c.set(Calendar.DAY_OF_MONTH, 3);
long time2=   c.getTimeInMillis();
c.set(Calendar.MONTH, Calendar.AUGUST);
  c.set(Calendar.DAY_OF_MONTH, 8);   
   long time3=   c.getTimeInMillis();
   if(time>time2){
 //Logic
 if(time>time3){
     //Logic
 }
 }
于 2013-02-06T10:03:58.307 に答える
1

まず、スケジュールに必要なインテントを作成する必要があります。次に、そのインテントの pendingIntent を取得します。アクティビティ、サービス、およびブロードキャストをスケジュールできます。MyActivity などのアクティビティをスケジュールするには:

  Intent i = new Intent(getApplicationContext(), MyActivity.class);
  PendingIntent pi = PendingIntent.getActivity(getApplicationContext(),3333,i,
  PendingIntent.FLAG_CANCEL_CURRENT);

この pendingIntent を alarmManager に渡します。

//getting current time and add 5 seconds in it
  Calendar cal = Calendar.getInstance();
  cal.add(Calendar.SECOND, 5);
  //registering our pending intent with alarmmanager
  AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
  am.set(AlarmManager.RTC_WAKEUP,cal.getTimeInMillis(), pi);

アプリケーションを停止しても、デバイスがスリープ状態になっても (RTC_WAKEUP オプションにより)、MyActivity はアプリケーションの起動から 5 秒後に起動されます。完全なサンプル コードを読むことができますスケジュール アクティビティ、サービス、およびブロードキャスト #Android

于 2013-02-06T10:04:05.023 に答える
1

または、カレンダーや相対的な電話時間を使用する代わりに秒をカウントダウンします..自分で同様のアプリを作成しましたが、電話の時間がオフまたはリセットされるなどの理由で変動性が減少するようです...

于 2013-02-06T10:39:45.163 に答える