2012-09-09 100 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(内部按钮) –