嗨,谢谢你的帮助。
这是我的情景。
我需要通过AlarmManager安排闹钟。
警报的安排需要同时发生
现在,在展位的情况下,我需要调用某个类的方法来传递我想要安排的事件。
考虑到
我的问题是:我需要创建什么样的对象(包含上述方法)?
活动?不这么认为......
服务?不这么认为
请问我能用什么?
答案 0 :(得分:2)
我已经实现了类似的东西。在我的应用程序中,BroadcastReceiver
收到警报(Intent
),然后启动传递一些参数的激活。
这是我的一段代码。让它成为通过和接收参数的部分
public class AlarmReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context c, Intent i) {
int answerType = i.getExtras().getInt("answerType");
Intent intent = new Intent(arg0, ReminderActivity.class);
intent.putExtra("id", i.getExtras().getInt("id"));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
c.startActivity(intent);
}
}
我写了一个名为ReminderManger的类,其中包含一个设置Alarm的方法。像这样:
public void setAlarm(Notification n){
Intent intent = new Intent(reminderContext, AlarmReceiver.class);
intent.putExtra("id",n.ID);
intent.putExtra("answerType",n.AnswerType);
int execTimeInt = Integer.parseInt(n.ExecutionTimespan);
long execTime = (long)execTimeInt;
execTime = execTime*1000;
PendingIntent pendingIntent = PendingIntent.getBroadcast(reminderContext, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
currentPendingIntent = pendingIntent;
AlarmManager alarmManager = (AlarmManager)reminderContext.getSystemService(reminderContext.ALARM_SERVICE);
currentAlarm = alarmManager;
if(execTime < System.currentTimeMillis() && System.currentTimeMillis() - execTime < NOTIFICATION_THRESHOLD)
{
alarmRunning = true;
alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+EXECUTION_DELAY,pendingIntent);
}
}