如何设置闹钟,用户会收到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);
}
}
重新启动设备甚至关闭我的应用后,广播丢失了数据?而不是得到; 2015年7月11日的电影发布 ,我在null 上获得 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>
答案 0 :(得分:1)
是的,您的应用程序的内存状态在您的进程终止时会丢失(几乎任何时候您的应用都不在前台)。这不是Android独有的。
如果要保留数据,则必须以某种方式将其存储到磁盘。您应该阅读有关Android存储的官方指南:http://developer.android.com/guide/topics/data/data-storage.html