0

私はこれが基本的な問題であることを知っていますが、それでも私を夢中にさせています。繰り返しアラームを設定していますが、受信者が呼び出されません。

Intent intent = new Intent(NewSchedule.this, RepeatingAlarm.class);
PendingIntent sender = PendingIntent.getBroadcast(NewSchedule.this, 0, intent, 0);


Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 10);

AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, calendar.getTimeInMillis(), 5 * 1000, sender);
Log.i("calendar",calendar.getTimeInMillis() + "");
Toast.makeText(NewSchedule.this, "repeating_scheduled", Toast.LENGTH_SHORT).show();


public class RepeatingAlarm extends BroadcastReceiver {

      @Override
      public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, "repeating_received", Toast.LENGTH_LONG).show();



      }
    }

<receiver android:name=".RepeatingAlarm" android:process=":remote" />

私は自分の電話でテストしています。カレンダー ログは正確な時刻を示します。レシーバークラスでトーストを取得することはありません。

4

2 に答える 2

0

参照:放送受信機を備えたAndroidアラームマネージャー

Intent sender = new Intent("WhatEverYouWant");
PendingIntent senderPIntent = PendingIntent.getBroadcast(context, 0, sender, 0);
AlarmManager alarm = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarm.set(AlarmManager.RTC_WAKEUP, triggerTime, senderPIntent);

// In Manifest.xml file
<receiver android:name="com.package.YourOnReceiver">
    <intent-filter>
       <action android:name="WhatEverYouWant" />
    </intent-filter>
</receiver>
于 2012-10-10T19:29:35.203 に答える
0

実際、私のコードは優れていることがわかりました。どういうわけかアラームが作動していたので、なんらかの理由で (少なくとも私には) 受信者を呼び出すことができませんでした。新しいプロジェクトを作成し、その受信機が正常に動作していることをテストしたときに、私はそれを理解しました. また、そのアラームを停止する必要がありました。その後、元のプロジェクトに戻り、行を変更せずに同じアラームを開始しましたが、正常に機能していました。誰もこれを経験しましたか?

于 2012-10-10T19:40:13.827 に答える