所以我有一個BroadcastReceiver
它看起來像這樣:Android的報警管理器不工作
public class UpdateReceiver extends BroadcastReceiver {
public UpdateReceiver() {
}
@Override
public void onReceive(Context context, Intent intent) {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.SECOND, 10);
System.out.println("Broadcast received");
PendingIntent operation = PendingIntent.getService(context, 0,new Intent("REFRESH_THAT"), PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.setInexactRepeating(AlarmManager.ELAPSED_REALTIME, System.currentTimeMillis(), cal.getTimeInMillis(), operation);
}
}
這是我如何調用BroadcastReceiver
Intent in = new Intent ("REFRESH_BROADCAST");
sendBroadcast(in);
這是Android中我的意圖過濾器Manifest
文件
<service android:name = ".services.RefreshService">
<intent-filter>
<action android:name="REFRESH_THAT"/>
</intent-filter>
</service>
<receiver android:name=".services.UpdateReceiver">
<intent-filter>
<action android:name="REFRESH_BROADCAST"/>
</intent-filter>
</receiver>
BroadcastReceiver
收到brodcast沒有任何問題,但AlarmManager
似乎什麼都不做。如果我打電話給operation.send()
它沒有問題,所以我認爲AlarmManager
有什麼問題。
我不工作的人 –
你有你的BroadcastReceiver設置?如果您遇到問題,我可以提供代碼。但首先請確保,您已將其註冊到Android Manifest中。喜歡我原來的問題。 –
我複製粘貼你的例子,它工作正常。謝謝。但有些事情我似乎不明白。請向我解釋這一行: 'alarmManager.setInexactRepeating(AlarmManager.ELAPSED_REALTIME,SystemClock.elapsedRealtime(),30000,operation); ' 這是否意味着在您的情況下,操作會在30秒後發生? 我的意思是它的意思是你的計時器間隔是30s –