0

バックグラウンドおよびコールサーバーAPIで実行されるコードを作成しようとしています。グーグルはAlarmManagerを使用するために私を導いた、ここに私のコードは次のとおりです。AlarmManagerはアクティビティをフォアグラウンドに持ち帰り続けます

  AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
      int interval = 4000; 

      Intent alarmIntent = new Intent(getApplicationContext(), AlarmReceiver.class); 
      PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, alarmIntent, 0); 

      manager.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), interval, pendingIntent); 

問題はここにいますが、私のアプリがフォアグラウンドにあるとき(現在はアンドロイドのメインメニューで、または別のアプリで)で、いつでもアラーム火災、それは私の活動を前面に送る。

これがなぜ発生するのか、どうすればこの問題を回避できるのか、誰でも知っていますか?私はAlarmReceiverクラスによって開始されるサービスを持っていて、それをバックグラウンドで実行したい。

AlarmReceiver.class:事前に

<receiver android:name="com.example.app.alarm.AlarmReceiver"> 
    <intent-filter> 
     <action android:name="android.intent.action.BOOT_COMPLETED"/> 
    </intent-filter> 
</receiver> 

<service android:name="com.example.app.alarm.LogService" > 
</service> 

感謝を:マニフェストにものを追加しました

public class AlarmReceiver extends BroadcastReceiver { 

@Override 
public void onReceive(Context context, Intent intent) { 

    Intent i = new Intent(context, LogService.class); 
    i.putExtra("param1", "index.html"); 
    i.putExtra("param2", 
     "http://www.vogella.com/index.html"); 
    context.startService(i); 
} 

} 

LogService.class

public class LogService extends IntentService{ 

    public LogService() { 
     super("LogService"); 
     // TODO Auto-generated constructor stub 
    } 

    @Override 
    protected void onHandleIntent(Intent intent) { 
     String param1 = intent.getStringExtra("param1"); 
     String param2 = intent.getStringExtra("param2"); 

     Log.i("Hello from logservice!", "!!! -- " + param1 + " - " + param2); 
    } 

} 

+0

AlarmReceiverのコードを投稿できますか? –

+0

こんにちは、投稿を編集しました。 AlarmReceiverクラスとLogServiceクラスが含まれています。 – GonnaGetGet

+0

マニフェストファイルでサービスを宣言しましたか? –

答えて

0

周囲を読んだ後、API 19以降、繰り返しアラームはすべて不正確であることがわかりました。これについて知った後、私はsetRepeating機能を使ってみました。なぜそれが違うのか分からないが、今はすべて意図どおりに働いている。

関連する問題