所以我的接收器工作正常......等待的意圖正在發送和接收,並一直工作正常,直到這...我有一個微調包含報警聲音,當用戶點擊其中的項目,我想要得到的位置,並將其發送到receiver..problem在接收器總是得到的值作爲0..can有人幫接收器沒有獲取數據
這是我在我的鬧鐘活性微調
int choose_alarm_sound;
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String selected = parent.getItemAtPosition(position).toString();
choose_alarm_sound = position;
Intent broad_Intent = new Intent();
Log.e("TEST 1", choose_alarm_sound + "");
switch (selected) {
case "Buzzer": {
mp = MediaPlayer.create(alarmClockActivity.this, R.raw.buzzer);
mp.start();
break;
}
case "Doorbell": {
mp = MediaPlayer.create(alarmClockActivity.this, R.raw.doorbell);
mp.start();
break;
}
case "FirePager": {
mp = MediaPlayer.create(alarmClockActivity.this, R.raw.firepager);
mp.start();
break;
}
case "Ring": {
mp = MediaPlayer.create(alarmClockActivity.this, R.raw.ring);
mp.start();
break;
}
case "SchoolBell": {
mp = MediaPlayer.create(alarmClockActivity.this, R.raw.schoolbell);
mp.start();
break;
}
case "Siren": {
mp = MediaPlayer.create(alarmClockActivity.this, R.raw.siren);
mp.start();
break;
}
case "Siren2": {
mp = MediaPlayer.create(alarmClockActivity.this, R.raw.siren2);
mp.start();
break;
}
case "SmokeAlarm": {
mp = MediaPlayer.create(alarmClockActivity.this, R.raw.smokealarm);
mp.start();
break;
}
case "Warning": {
mp = MediaPlayer.create(alarmClockActivity.this, R.raw.warning);
mp.start();
break;
}
}
broad_Intent.putExtra("alarm_choice", choose_alarm_sound);
Log.e("TEST 2", choose_alarm_sound + "");
sendBroadcast(broad_Intent);
這是我的接收器
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent arg1) {
Integer getAlarm=arg1.getExtras().getInt("alarm_choice");
Log.e("TEST 3", String.valueOf(getAlarm));
}
所以我的日誌測試1和測試2總是有相同的值,這是正確的值,但測試3在接收器中是每一次0 ..所以我的接收器沒有收到這個意圖..爲什麼.. .ANY幫助將不勝感激
清單:
<?xml version="1.0" encoding="utf-8"?>
<application
android:allowBackup="true"
android:icon="@drawable/mini"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".TimeDateRem"/>
<activity android:name=".BirthdayRem"/>
<activity android:name=".Details"/>
<activity android:name=".DailyReminder"/>
<activity android:name=".HolidayReminderLebanon"/>
<activity android:name=".HolidayReminderSaudiArabia"/>
<activity android:name=".HolidayReminderKuwait"/>
<activity android:name=".HolidayReminderUAE"/>
<activity android:name=".AlarmChooser"/>
<activity android:name=".Timer"/>
<receiver android:name=".AlarmReceiver">
</receiver>
<service android:name=".MediaPlayingService"/>
</application>
在你發佈的代碼中,除了額外的內容之外,你絕不會在'broad-intent'中放置任何**。當你調用sendBroadcast()時,不會發生任何事情,因爲在廣播「Intent」中沒有設置ACTION或組件。你的'AlarmReceiver.onReceive()'不應該被調用。請修改您的帖子以反映您使用的實際代碼! –
那麼如果我不......它應該發送任何方式不應該呢?我的代碼的其餘部分與這部分無關......這個具體的意圖應該讓我把這個物品在微調器中的位置給接收器......所以如果sendbroadcast不會在意圖中額外添加一個...我應該如何將這個意圖發送給接收者?並且正在調用接收器...我的接收器中的日誌(測試3)正在調用,但正在返回0,這不是正確的值@DavidWasser – spyder3anz
對不起,這根本沒有意義。如果您發送廣播「意圖」只是一個「額外」,Android不知道該交付「意圖」。廣播「意圖」是系統範圍的,Android將向所有註冊接收它的聽衆發送「意圖」。在我看來,其他的東西導致你的'AlarmReceiver.onReceive()'被調用,這將解釋爲什麼「extra」不在你期望的「Intent」中。請張貼您的清單,也許這將有助於解決這個謎團! –