0

特定の時間にステータスバーに表示される通知を設定しました。それを押すと、データベースに「はい」とログインします。ただし、2時間経っても押されない場合は、「いいえ」と記録してほしい。ロギング部分の実行方法は理解していますが、2時間以内に押されなかった場合に、そのシナリオを呼び出す方法についての手がかりはありません。2つのカレンダーを作成して比較できることはわかっていますが、これらをどこに配置しますか?何か提案はありますか?以下にコードをいくつか追加しました。ありがとう!

アラームコードの設定:

Intent intent_noti = new Intent(this,Nofi.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 12345, intent_noti,
        PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager am = (AlarmManager)getSystemService(Activity.ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), setTime,
pendingIntent);

通知コード:

Intent intent = new Intent(this, ScanActivity.class);
PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, 0);
Notification noti = new Notification.Builder(this)
        .setContentTitle("MedScan")
        .setContentText("2. You should take pills now")
        .setSmallIcon(R.drawable.original)
        .setContentIntent(pIntent)
        .build();
NotificationManager notificationManager = (NotificationManager) getSystemService(
        NOTIFICATION_SERVICE);
noti.defaults |= Notification.DEFAULT_ALL;
// Hide the notification after its selected
noti.flags |= Notification.FLAG_AUTO_CANCEL;

notificationManager.notify(ID, noti);
4

1 に答える 1

2

ユーザーが明示deleteIntentClearNotification

したがって、目標を達成するには、次のことを行うことができます。

  • 通知を表示したら、2時間後に発火するアラームを開始します
  • 使用がクリックNotificationまたはヒットClearしてキャンセルする2つのケースを処理しますAlarm
  • アラームが発生した場合は、通知が引き続きnoデータベースに記録されていることを意味します
于 2013-03-14T03:34:21.417 に答える