11

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

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

私が理解できないのは、メインのアクティビティにサービスを登録すると、ユーザーがアプリを閉じたときにシステムがサービスを開始できるのはなぜですか? 誰か私にそれを説明できますか?メインのアクティビティが破棄されると、サービスも破棄されると常に考えています。

4

2 に答える 2

7

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
于 2013-05-10T16:53:41.617 に答える
2

サーバーは必要ありません。これを実装する最良の方法は、AlarmManager を使用することだと思います。

アラーム マネージャの例

于 2013-05-10T16:53:50.970 に答える