我需要哪种背景?

时间:2012-09-09 07:44:47

标签: android android-intent android-context

我上课了:

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

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

有人可以帮帮我吗?

2 个答案:

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

现在工作!!谢谢你们!!!!!