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

それぞれActivityContextオブジェクトです。

したがって、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 に答える