данные, кажется, теряются после перезагрузки устройства или даже закрытия моего приложения, я передаю данные BroadCastReceiver с намерением.BroadcastReceiver теряет данные после перезагрузки
Как установить мои тревоги, пользователь получает запрос с DatePicker диалогового
public void setAlarm(View view) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, yearDate);
cal.set(Calendar.MONTH, monthDate);
cal.set(Calendar.DAY_OF_MONTH, dayDate);
long alertTime = cal.getTimeInMillis();
Intent alertIntent = new Intent(this, AlertReceiver.class);
alertIntent.putExtra("name", name);
alertIntent.putExtra("id", mainId);
alertIntent.putExtra("releaseDate", releaseDate);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, alertTime,
PendingIntent.getBroadcast(this, mainId, alertIntent,
PendingIntent.FLAG_UPDATE_CURRENT));
}
BroadcastReceiver OnReceive()
public class AlertReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
String name = intent.getStringExtra("name");
String releaseDate = intent.getStringExtra("releaseDate");
int id = intent.getIntExtra("id", 0);
createNotification(context, name + "releases on" + releaseDate, "Reminder", id);
}
}
После того как я перезагрузить устройство или даже закрыть мое приложение, то Broadcast теряет его данные? Вместо получения; 10.02.2012, я получаю null null on null. Замысел удаляется? (Не знаю правильного термина). Вместо того, чтобы показывать сообщение, подобное «ЭТОТ фильм отсутствует», вместо него отображается «null is out», и оно отображает только одно уведомление, не более одного, поэтому BroadcastReceiver только напоминает мне о последнем фильме, в котором я последний раз задавал напоминание, благодаря!
Мой Android манифеста:
<receiver android:name=".AlertReceiver"
android:enabled="true">
<intent-filter android:priority="100">
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
Спасибо, чувак! Поэтому я сохраняю имя, id и дату выпуска в «SharedPreference», а затем в onReceive() я получаю данные, достаточно просто. Но есть проблема, как я знаю, чтобы получить данные из ЭТОГО специфического «SharedPreference» в методе onReceive(), может быть, я попытаюсь сделать это с идентификатором, так или иначе? Каждый фильм имеет уникальный идентификатор – MadBoy
SharedPreferences больше подходит для значений параметров «settings» - где у вас будет набор известных ключей и по одному значению для каждого. Вы * можете * вероятно, заставить его работать с помощью метода 'getAll()', но на самом деле, я думаю, вы захотите использовать [SQLite Database] (http://developer.android.com/guide/topics/data /data-storage.html#db). –
Хорошо спасибо, как вы думаете, я могу получить код запроса PendingIntent, который является основным в onReceive()? – MadBoy