2013-05-10 12 views
10

毎日午前8時に通知を作成したい。私はSQLiteデータベースにいくつかのデータを持っており、毎日この時点でデータを取得し、そこから通知を作成したいと考えています。新しい通知の作成は問題ありませんが、今のところ毎日どのように表示できますか?毎日通知を作成する

サービスと一緒に作業する必要があると思いますが、特別な瞬間にこのサービスを開始するようにシステムにどのように指示することができますか?そして、私はどんなサービスを利用すべきですか?システムがサービスを呼び出すと、コードを実行してデータベースに接続し、通知を作成してシステムに送信できる特定の機能が起動すると思いますか?

私が理解できないことは、主なアクティビティでサービスを登録すると、ユーザーがアプリを閉じるとシステムがサービスを開始できるのはなぜですか?誰も私にそれを説明することはできますか?私はいつも、私の主な活動が破壊されれば、サービスも破壊されると思っています。

+2

alarmManagerを使用してください。 – wtsang02

+0

http://stackoverflow.com/questions/4430849/how-to-set-recurring-alarmmanager-to-execute-code-daily –

+0

http://mobile.tutsplus.com/tutorials/android/android-fundamentals-scheduling -recurring-tasks/ –

答えて

6

Alarm managerクラスを使用し、通知をNotifyServiceクラスに入れます。これにより、毎日午前8時にアラームが設定されます。

Intent myIntent = new Intent(Current.this , NotifyService.class);  
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); 
pendingIntent = PendingIntent.getService(ThisApp.this, 0, myIntent, 0); 
Calendar calendar = Calendar.getInstance(); 
calendar.set(Calendar.HOUR_OF_DAY, 08); 
calendar.set(Calendar.MINUTE, 00); 
calendar.set(Calendar.SECOND, 00); 
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 24*60*60*1000 , pendingIntent); //set repeating every 24 hours 
+0

私は同じ設定をしていますが、1日に1回ではなく1時間ごとに通知を受けています。 – Roon13

+0

これは、ユーザーが電話を再起動するまで機能します。再起動してもAlarmManagerが動作するようにするには、この投稿をチェックしてください。http://stackoverflow.com/questions/12512717/android-alarmmanager-after-reboot –

+1

同じです... 1日に1回は送信しませんが、毎回アプリを開きます – Si8

2

サーバーは不要です。私はこれを実装する最良の方法はAlarmManagerを使用することだと思います。

Alarm Manager Example

+0

AlertManagerをAlarmManagerに変更する –

関連する問題