我上课了:
PendingIntent pendingIntent;
public class xxx{
public void updateObjects(){
deleteIntents(Context context, int x);
(...)
for(...){
//Update each object ofdb4o with the new object value's.
(...)
doIntents(context,mil,obj);
}
(...)
}
public void doIntents(Context context, long mil, ClassObjects obj){
(...)
pendingIntent = PendingIntent.getBroadcast(context, obj.getId(), intent, PendingIntent.FLAG_UPDATE_CURRENT);
(...)
}
}
public void deleteIntents(Context context, int x){
intent = new Intent(context, OnAlarmReceiver.class);
for(int i=1;i<x;i++){
pendingIntent = PendingIntent.getBroadcast(context, i, intent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.cancel(pendingIntent);
}
Log.d(TAG,"intents removed");
}
工作没问题..但是我需要在主Activity中使用deleteIntents(Context context, int x)
..有一个按钮:
xxx.deleteIntents(getApplicationContext(),x);
但是不起作用..我认为我对上下文有问题,但我不知道为什么......
有人可以帮帮我吗?
答案 0 :(得分:1)
每个Activity
都是Context
个对象。
所以在Activity
课内只需使用&#34;这个&#34;指针代替getApplicationContext()
答案 1 :(得分:0)
对不起,
我忘了在之前实例化AlarmManager:
public void deleteIntents(Context context, int x){
alarmManager = (AlarmManager) context.getSystemService (Service.ALARM_SERVICE);
intent = new Intent(context, OnAlarmReceiver.class);
for(int i=1;i<x;i++){
pendingIntent = PendingIntent.getBroadcast(context, i, intent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.cancel(pendingIntent);
}
Log.d(TAG,"intents removed");
}
现在工作!!谢谢你们!!!!!