0

我有课:

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");
        }

工作没问题..但我需要deleteIntents(Context context, int x)从主活动中使用..有一个按钮:

xxx.deleteIntents(getApplicationContext(),x);

但不起作用..我认为我的上下文有问题,但我不知道为什么..

有人可以帮我吗?

4

2 回答 2

1

每一个Activity都是一个Context对象。

所以在Activity类里面只使用“this”指针而不是getApplicationContext()

于 2012-09-09T08:08:20.587 回答
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");
        }

现在工作!谢谢你俩!!!!!

于 2012-09-09T08:45:12.783 回答