0

これは簡単なことだと思いますが、よくわかりません。単純な繰り返しアラームを作成しようとしていますが、トリガーされません。私が持っているものは次のとおりです。

private void setupAlarms()
{
    AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);

    Intent intent = new Intent(this, RepeatingAlarm.class);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(HelloAndroid.this, 0, intent, 0);

    GregorianCalendar fifteenSeconds = (GregorianCalendar)Calendar.getInstance();
    fifteenSeconds.add(Calendar.MINUTE, 0);
    fifteenSeconds.set(Calendar.SECOND, 15);

    alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
            SystemClock.elapsedRealtime(), fifteenSeconds.getTimeInMillis(), pendingIntent);
}

これは、メインの onCreate 呼び出しから呼び出されます。

私の警報受信機:

public class RepeatingAlarm extends BroadcastReceiver
{
    @Override
    public void onReceive(Context context, Intent intent)
    {
        Toast.makeText(context, R.string.hello, Toast.LENGTH_SHORT).show();
    }
}

私のマニフェストでは、次を追加しました。

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

どんな助けでも大歓迎です

4

1 に答える 1

0

Have you added an intent filter to your BroadcastReceiver? Code might look something like this in your AndroidManifest.xml file:

    <receiver android:name=".RepeatingAlarm" android:exported="true">
        <intent-filter>
            <action android:name="intent id text" />
        </intent-filter>
    </receiver>

and when creating your intent do something like this:

Intent intent = new Intent("intent id text")

where the "intent id text" can be any string you use to identify your intent. Also Android alarms get reset if you reboot your device so that may be something you need to look into.

Hope this helps.

于 2011-01-20T13:42:45.880 に答える