2017-03-06 20 views
0

アラームを使用して15日ごとにサービスを開始します。アラームは、インストールの最初に開始されます。一度アラームがトリガーされるたびにサービスが正常に開始されますが、アラームを開始するときにサービスが開始されました。インストール時にサービスを開始したくありません。これをやめる方法。 私は間違ったフォーマットを使用していますか?初めてアラームが自動的に開始されるアラームを設定する

注:この状態を除いて、私はどこからでもサービスを開始しません。私はマニフェストファイル内で使用したもの

Intent intent = new Intent(context, InitiateService.class); 
    PendingIntent pIntent = PendingIntent.getService(context, 12345, intent, PendingIntent.FLAG_CANCEL_CURRENT); 
    alarm.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 15 * AlarmManager.INTERVAL_DAY, pIntent); 

これ。

<service android:name=".service.InitiateService" /> 

これは一度15daysの時にサービスを開始するためのアラームを開始する私のコードです。

私の質問に間違いが見つかった場合は、謝罪してください。間違いを修正し、私にお答えください。

+0

さらなる調査のためにコードを投稿してください – Noorul

+0

@あなたの応答のおかげで感謝します。私はすでに私のコードを掲載しています。それは十分ではない? – Palanivelraghul

答えて

1

あなたがのSystem.currentTimeMillisを(使用しているため、それはある)

この

のSystem.currentTimeMillis()*(15 * AlarmManager.INTERVAL_DAY)

alarm.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()*(15 * AlarmManager.INTERVAL_DAY), 15 * AlarmManager.INTERVAL_DAY, pIntent); 
+0

あなたの答えのおかげで、ありがとう、私はあなたに知らせようとします。 – Palanivelraghul

+0

申し訳ありません。動いていない。再びその即時開始された。 – Palanivelraghul

+0

okですが、現時点でアラームをトリガーしているので、問題はSystem.currentTimeMillis()にあります。 –

1

を試してみてください@Mehul Gajjarについて正しいですSystem.currentTimeMillis()

あなたのサービスがすぐに開始されますので、

System.currentTimeMillis()は、現在の時刻にアラームを設定します:

ので、あなたは説明

(15 * 24 * 60 * 60 * 1000 * System.currentTimeMillis()) 

System.currentTimeMillis() 

を交換したいかもしれません。 15日後にアラームを設定すると、問題が解決します。 15 * 24 * 60 * 60 * 1000は15日間になります。それを現在の時間 - マイルと掛け合わせると、15日後に現在の時間が得られます。

あなたのコードは、私は、これはあなたを助けることを願っています

alarm.setRepeating(AlarmManager.RTC_WAKEUP, (15 * 24 * 60 * 60 * 1000 * System.currentTimeMillis()), 15 * AlarmManager.INTERVAL_DAY, pIntent); 

ようになる中、短い

+0

あなたの答えのおかげでありがとう。もう一度チェックしてお知らせします。 – Palanivelraghul

+0

申し訳ありませんが、それは初めて初めて再開されます。 – Palanivelraghul

+0

サービスを初期化する方法を教えてください。 –

関連する問題