Android: ничего не происходит при установке будильника с AlarmManager? - PullRequest
0 голосов
/ 23 марта 2012

Так что я устанавливаю повторяющийся сигнал для получения данных с сервера.Проблема в том, что ничего не происходит, когда предполагается, что сработала сигнализация.Я не получаю ошибок при запуске, и код правильный (насколько я знаю).

Вот код, который устанавливает сигнал тревоги:

private void startRequestTimer() {

    // This is what will be called when the alarm goes off (GetOperations)
    Intent intent = new Intent(MainActivity.this, GetOperations.class);
    PendingIntent operation = PendingIntent.getBroadcast(MainActivity.this, 0, intent, 0);

    // The alarm will go off in one second from now
    long firstTime = SystemClock.elapsedRealtime();
    firstTime += 1000;

    // Set the alarm
    AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
    am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime, 5*1000, operation);

}

Вот GetOperations.java(вызывается при срабатывании будильника)

package se.jbhalmstad.ndroid;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

public class GetOperations extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, "Oh! The alarm went off!", 2000).show();
    }

}

И манифест на случай, если я что-то напутал здесь (в чем я сомневаюсь, поскольку я не получаю никаких ошибок):

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="se.jbhalmstad.ndroid"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="7" />   

    <application android:icon="@drawable/icon" android:label="@string/APP_NAME">

        <activity android:name=".MainActivity"
                  android:label="@string/APP_NAME">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity android:name=".SettingsActivity" />
        <activity android:name=".GetOperations" />
    </application>
</manifest>

Я что-то пропустил?

1 Ответ

1 голос
/ 23 марта 2012

Вы объявили GetOperations как BroadcastReceiver, но в вашем манифесте это действие.

...