我試圖通過alarmmanger傳遞兩個整數,但是每當我將它們傳遞給toast時,都會返回null。我無法理解問題出在哪裏。使用報警管理器將int傳遞給BroadcastReceiver類
Intent intent = new Intent(MainActivity.this, AlarmReceiver.class);
intent.putExtra("passedHour", cal.get(Calendar.HOUR_OF_DAY));
intent.putExtra("passedMin", cal.get(Calendar.MINUTE));
PendingIntent alarmIntent = PendingIntent.getBroadcast(
MainActivity.this, 0, intent, 0);
AlarmManager alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmMgr.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
alarmIntent);
這是alaramreceiver類的onReceive
Toast.makeText(context, "Alarm!! " + intent.getStringExtra("passedHour") + ":" + intent.getStringExtra("passedMin"), Toast.LENGTH_LONG).show();
'Calendar#get()'返回一個'int'。你試圖從'Intent'作爲'String'來檢索它。改爲使用'Intent#getIntExtra()'方法。 –
使用'getIntExtra'而不是'getStringExtra'從intent獲取兩個鍵值,因爲'Calendar'' get'方法的返回類型是'int'而不是'String' –
是的thnxs傢伙它的工作:) – Saud