3

ここで説明されているように、AlarmManager と BroadCastReceiver を使用して最初のアラームを設定しようとしています: http://smartandroidians.blogspot.com.es/2010/04/alarmmanager-and-notification-in.html

私のセットアップ:

AndroidManifest.xml:

<receiver android:name="es.radiopodcastellano.player.SleepAlarm" />

私のメイン アクティビティ onCreate (このコードは実際にはサブクラスにありますが、簡単にするためにそこに置きます):

@Override
    public void onCreate(Bundle savedInstanceState) {
            // <Stripped code>
    AlarmManager alarm = (AlarmManager) currentContext.getSystemService(Context.ALARM_SERVICE);
    Intent intent = new Intent(this.getApplicationContext(), SleepAlarm.class);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(), 0, intent, PendingIntent.FLAG_ONE_SHOT);
    alarm.set(AlarmManager.RTC_WAKEUP,(System.currentTimeMillis() + (5 * 1000)),pendingIntent);
}

SleepAlarm.java:

public class SleepAlarm extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    Log.d("RPod_SleepAlarm","Alarm!!");
}

}

「adb shell dumpsys alarm」からの出力はこれを示しているため、インテントが呼び出されているようです。

  es.radiopodcastellano.player
221ms running, 32 wakeups
44 alarms: flg=0x4 cmp=es.radiopodcastellano.player/.SleepAlarm

ただし、Logcat は「RPod_SleepAlarm」タグに対して何も表示しません。私は何が間違っているのでしょうか?

4

1 に答える 1

2

問題が見つかりました。

マニフェストのレシーバーは、ウィジェットの別のレシーバー内にあり、アプリケーションの子である必要があります。したがって、私と同じ動作をしている場合は、AndroidManifest.xml が正しく設定されていることを確認してください。

于 2012-06-24T15:33:29.577 に答える