我正在開發一個應用給料機,和我有讓用戶選擇爲每個源(飼料來源)指定的時間從互聯網上獲取數據並更新數據庫的選項。的Android AlarmManager setRepeating問題
我使用AlarmManager這一點。
我所做的一切是:
獲取所有供應商。 集團在地圖>認爲,關鍵在於睡眠時間和價值是提供
爲了什麼?列表...
嗯,我以後迭代在這個字典每個鍵並安排警報發送意向數據廣播。
在我的廣播接收機,我想這個數據..
,我不是undestanding是我通過一個鍵(睡眠時間),在每個循環調度該事件的問題...其實我用了2個鍵,[5,10]
,並在我的onReceive我只得到鍵5。2倍....好像同意圖傳遞到接收方..
這裏是代碼:
private void setAlarmForEnabledProviders(HashMap<Integer, ArrayList<Provider>> map)
{
Context ctx = FeederPeriodicalUpdater.this;
AlarmManager alarmMngr = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
for(Integer key : map.keySet())
{
int keyValue = key.intValue();
Intent intent = new Intent(FeederPeriodicalUpdater.this, OnAlarmReceiver.class);
intent.putExtra(AlarmManager_IntentKey, keyValue);
PendingIntent pIntent = PendingIntent.getBroadcast(ctx, 0, intent, 0);
long firstTime = SystemClock.elapsedRealtime();
alarmMngr.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime, pIntent);
}
}
我的收款人:
public void onReceive(Context ctx, Intent intent)
{
Log.d(TAG, "onReceive");
application = (DroidApplication)ctx.getApplicationContext();
feedMessageService = application.getFeedMessageService();
int sleep = intent.getIntExtra(FeederPeriodicalUpdater.AlarmManager_IntentKey, -1);
if(sleep == -1)
throw new IllegalStateException();
我很高興你試圖實現我在上一個問題中給你的設計:http://stackoverflow.com/questions/7166333/android-long-service-create -bg-thread-and-i-dont-know-that-is-going-on /接受我的答案mayb è? – darma