2012-09-09 35 views
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); 

可是不行的..我想我有一個問題的背景,但我不知道爲什麼..

任何人都可以幫助我嗎?

+1

「不起作用」 - 這根本沒有幫助。請詳細說明。 – Paul

+0

@Paul我沒有任何異常:(你知道我需要調用主要活動中的方法的上下文嗎? –

回答

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

現在的工作的!謝謝你們倆!!!!!

1

每個Activity是一個Context對象。

所以裏面Activity類只使用 「this」 指針來代替getApplicationContext()

+0

Behzadian我已經使用getApplicationContext(),因爲我已經讀過線程中的解決方案:http ://stackoverflow.com/questions/9776631/which-context-do-i-need(內部按鈕) –