0
我是新的android编程,我正在研究Android应用程序,我被困在创建多个警报。 我的代码仅触发最后一次报警,并忽略以前的 日期将被存储在数据库中(SQlite的)用户指定多个警报SQLite
这是我的提醒管理器类
public class ReminderManager {
private Context mContext;
private AlarmManager mAlarmManager;
public Appointments_ReminderManager(Context context) {
mContext = context;
mAlarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
}
public void setReminder(Long reminderId, Calendar when) {
Intent i = new Intent(mContext, Appointments_OnAlarmReceiver.class);
i.putExtra(RemindersDbAdapter.KEY_ROWID_APPOIN, (long)reminderId);
PendingIntent pi = PendingIntent.getBroadcast(mContext, 0, i, PendingIntent.FLAG_ONE_SHOT);
mAlarmManager.set(AlarmManager.RTC_WAKEUP, when.getTimeInMillis(), pi);
}
}
,这是接收器类
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ComponentInfo;
import android.util.Log;
public class OnAlarmReceiver extends BroadcastReceiver {
private static final String TAG = ComponentInfo.class.getCanonicalName();
@Override
public void onReceive(Context context, Intent intent) {
Log.d(TAG, "Received wake up from alarm manager.");
long rowid = intent.getExtras().getLong(RemindersDbAdapter.KEY_ROWID_APPOIN);
WakeReminderIntentService.acquireStaticLock(context);
Intent i = new Intent(context, ReminderService.class);
i.putExtra(RemindersDbAdapter.KEY_ROWID_APPOIN, rowid);
context.startService(i);
}
}
有人可以帮我修改我的代码,以触发存储在数据库中的用户指定的多个警报。
感谢您回答我的问题。但我试着你的建议,它给了我一个错误,因为它只需要int类型和我的提醒ID类型长 – zoza
,我试图改变它的类型为int,但它给我在我的项目中的任何地方的错误。 – zoza
非常感谢问题解决 – zoza