2012-03-23 2 views
0

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

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

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

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

+1

<приемник android: name = ". GetOperations" /> – 207

+0

Спасибо, миллиард! – qwerty

Смежные вопросы