我正在尝试编写一个 android 应用程序,该应用程序将在特定时间使手机静音,为此,我使用了AlarmManager
和BroadcastReceiver
按照本教程的组合。我正在使用一个单独的类,该类将包含使用 设置事件的方法,AlarmManager
以便我可以在多个活动中使用该方法。这个类的代码如下:
public class EventScheduler {
public static void schedule(Event event) {
Calendar start = event.getStartTime();
Calendar end = event.getEndTime();
String status = event.getStatus();
Context ctx;
Intent intent = new Intent(ctx, AlarmReceiver.class);
intent.putExtra("start_time", start);
intent.putExtra("end_time", end);
intent.putExtra("status", status);
PendingIntent sender = PendingIntent.getBroadcast();
AlarmManager am = (AlarmManager) getSystemSerivce(ALARM_SERVICE);
}
public static void unschedule(Event event) {
}
}
我的第一个问题是关于初始化意图对象。由于此方法是在不扩展 Activity 的类中定义的,因此它没有上下文(ctx
),但是此方法将在扩展 Activity 的类中使用,所以我将如何获取这些类的上下文以在初始化中使用的意图?
我的第二个问题是关于初始化 PendingIntent。PendingIntent.getBroadcast()
应该采用 4 个参数,那么我将如何再次获取调用此方法的类的上下文以用作第一个参数?同样在文档中它说第二个参数 requestCode 没有使用,这是否意味着这可以0
?
我的第三个问题是关于初始化 AlarmManager。同样,该ALARM_SERVICE
字段来自上下文对象,那么在这种情况下我将使用什么上下文对象?