无法将方法与 MainActivity 分开 class
Can't separate methods from MainActivity class
创建了新的 Java class,其中尝试实施 AlarmManager
class 方法。我想创建用于创建、编辑和删除警报的功能。所有代码都在 MainActivity
class.
中时一切正常
新 class 具有传递上下文的构造函数。应用程序构建成功时,警报不起作用。
我在 MainActivity 调用 setShowDataEvent 方法:
AlarmController alarmController = new AlarmController(this);
alarmController.setShowDataEvent(startTime, finishTime);
这里是 AlarmController class:
private final String TAG = "AlarmController";
Context context;
PendingIntent pendingIntent;
AlarmManager mAlarmManager;
public AlarmController(Context context){
this.context = context;
this.mAlarmManager = (AlarmManager) context.getSystemService(ALARM_SERVICE);
}
public void setShowDataEvent(long startTime, long finishTime){
newAlarmIntentData(startTime);
mAlarmManager.setExact(AlarmManager.RTC, startTime, pendingIntent);
newAlarmIntentData(finishTime);
mAlarmManager.setExact(AlarmManager.RTC, finishTime, pendingIntent);
Log.d(TAG, "setShowDataEvent has been executed");
}
private void newAlarmIntentData(long time){
Intent intent = new Intent(context, AlarmReceiver.class);
intent.putExtra("showData", true);
intent.putExtra("time", time);
pendingIntent = PendingIntent.getBroadcast(context, 1, intent, PendingIntent.FLAG_ONE_SHOT);
}
将 AlarmManager
移动到构造函数并重新启动 AndroidStudio
后,一切都开始工作了。我已将相同的数据添加到意图中,所以现在有两个不同的 PendingIntent
。
intent.setData(Uri.parse("myalarms://" + time));
创建了新的 Java class,其中尝试实施 AlarmManager
class 方法。我想创建用于创建、编辑和删除警报的功能。所有代码都在 MainActivity
class.
新 class 具有传递上下文的构造函数。应用程序构建成功时,警报不起作用。
我在 MainActivity 调用 setShowDataEvent 方法:
AlarmController alarmController = new AlarmController(this);
alarmController.setShowDataEvent(startTime, finishTime);
这里是 AlarmController class:
private final String TAG = "AlarmController";
Context context;
PendingIntent pendingIntent;
AlarmManager mAlarmManager;
public AlarmController(Context context){
this.context = context;
this.mAlarmManager = (AlarmManager) context.getSystemService(ALARM_SERVICE);
}
public void setShowDataEvent(long startTime, long finishTime){
newAlarmIntentData(startTime);
mAlarmManager.setExact(AlarmManager.RTC, startTime, pendingIntent);
newAlarmIntentData(finishTime);
mAlarmManager.setExact(AlarmManager.RTC, finishTime, pendingIntent);
Log.d(TAG, "setShowDataEvent has been executed");
}
private void newAlarmIntentData(long time){
Intent intent = new Intent(context, AlarmReceiver.class);
intent.putExtra("showData", true);
intent.putExtra("time", time);
pendingIntent = PendingIntent.getBroadcast(context, 1, intent, PendingIntent.FLAG_ONE_SHOT);
}
将 AlarmManager
移动到构造函数并重新启动 AndroidStudio
后,一切都开始工作了。我已将相同的数据添加到意图中,所以现在有两个不同的 PendingIntent
。
intent.setData(Uri.parse("myalarms://" + time));