BroadcastReceiver 重启后丢失数据

BroadcastReceiver loses data after reboot

数据似乎在我重新启动我的设备甚至关闭我的应用程序后丢失,我有意地将数据传递给 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));

}

广播接收器 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);

  }
}

在我重启我的设备甚至关闭我的应用程序后,广播丢失了它的数据?而不是得到; 电影于 2015 年 7 月 11 日上映,我在 null 获得 null 上映。 意图被删除? (不知道正确的术语)。它没有显示 "THIS movie is out" 之类的消息,而是显示 "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>

是的,当您的进程终止时,您的应用程序的内存状态将丢失(它几乎可以在您的应用程序不在前台的任何时候执行)。这不是 Android.

独有的

如果你想保留你的数据,你必须以某种方式将它存储到磁盘。您应该阅读 Android 中关于存储的官方指南:http://developer.android.com/guide/topics/data/data-storage.html