gpt4 book ai didi

android - BroadcastReceiver 重启后丢失数据

转载 作者:行者123 更新时间:2023-11-30 01:46:58 25 4
gpt4 key购买 nike

数据似乎在我重新启动我的设备甚至关闭我的应用程序后丢失,我有意地将数据传递给 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 上映日期。 Intent 被删除? (不知道正确的术语)。它没有显示“THIS movie is out”之类的消息,而是显示“null is out”,并且它只显示一个通知,不超过一个,所以 BroadcastReceiver 只提醒我上次设置提醒的最后一部电影,谢谢!

我的 Android list :

<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

关于android - BroadcastReceiver 重启后丢失数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33586556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com