2017-11-02 24 views
-1

私は、仮想タイムカードのように動作するAPPを作成します。ユーザーは、自分が仕事に入った時間、昼食に出る時間、仕事に戻った時間を入力します。それから彼はボタンを押して、何時に出ることができるかを見ることができます。もちろん、これは私のように柔軟な労働時間を持つ人にとっては便利です。イベントの5分前にアラームを設定する方法は?

APPは動作します。今度は新しい機能を追加したいと思います。私が午後5時に私のオフィスを出ることができるとしましょう、私は16:55の私のAPPが通知、アラームを送ってくれたと思います。私が外出できることを私に思い出させる何か。どのようにそれを行うことができますか?

私はこれらの手順を持っている私の心の中で

  1. 私は仕事
  2. から出て行くことができる時間は、私は現在の時刻を確認し、それが5分だ場合のポイント1をAに送信する前に、変数に入れて通知

ただし、このチェックは、毎回、または毎分1回、このチェックを行う必要があります。そして、私は実際にそれを行う方法を本当に知りません。

誰もが私のアイデアを助けることができますか?

イバノ

  • ルールと私の新しいアップデートに応じて編集 -

私の遅れ申し訳ありませんが、私はJavaでのスーパールーキーだから、私はあなたが私を送った何を勉強していました...そして、私は本当に新しいことを学ぶために苦労しています...とにかく、ポイントに到達しましょう。私はAlarmManagerを使用しようとしましたが、私が望むことはしていません。

私はMainActivityクラスの先頭にこのコードを追加:

AlarmManager alarmMgr = (AlarmManager)getSystemService(ALARM_SERVICE); 
Intent intent = new Intent(this, OnAlarmReceive.class); 
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(),1*60*1000, pendingIntent); 

私は何を取得するAPPは、自分自身を再ロードMainActivityクラスを呼び出し、ユーザーがに以前入力した値を再ロードし、各60秒ということですDB。したがって、見ることなく新しい価値を入れる方法はありません!!

idは次のようなものです:アプリはバックグラウンドで「永遠」にとどまり、ユーザーが5分後に退室できることを認識したときにのみ目を覚まします。

私はすでに、プログラムが現在の時刻をチェックし、「ユーザーが退席する前に5分足らずですか?」と尋ねる部分を書いています。答えが「はい」の場合は、テキストメッセージが表示され、サウンドが再生されます。これは、コードの一部です:

NotificationCompat.Builder n = new NotificationCompat.Builder(this) 
       .setContentTitle("Arrivato nuovo messaggio!!") 
       .setContentText("Autore: Nicola Rossi") 
       .setSmallIcon(android.R.drawable.ic_dialog_info) 
       .setContentIntent(pendingIntent) 
       .setAutoCancel(true) 
       .setSound(sound); 

ので、プログラムが動作します..しかし、私は5分の私のシフトの終了前にアプリを開いたときに、それが唯一の通知を送信マイナーグリッチを持っています。それ以外の時間にアプリを開いた場合、通知は送信されません。私はアプリを開いたときに関係なく、この通知を送信します。

どうすれば修正できますか?

+0

https://developer.android.com/reference/android/app/AlarmManager.html – Kuffs

答えて

関連する問題