2015-07-04 31 views
0

这个问题类似于How to use getApplicationContext in BroadcastReceiver class?如何使用BroadCastReceiver获取应用上下文

但我不知道他以前的活动如何。所以我不知道如何解决我的问题。

这是我的活动:

public class backgroundApplication extends Activity { 
private PendingIntent pendingIntent; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.background_application); 

    /* Retrieve a PendingIntent that will perform a broadcast */ 
    Intent alarmIntent = new Intent(backgroundApplication.this, AlarmReceiver.class); 
    pendingIntent = PendingIntent.getBroadcast(backgroundApplication.this, 0, alarmIntent, 0); 

    findViewById(R.id.startAlarm).setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      start(); 
     } 
    }); 

    findViewById(R.id.stopAlarm).setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      cancel(); 
     } 
    }); 

    findViewById(R.id.stopAlarmAt10).setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      startAt10(); 
     } 
    }); 
} 

完整的代码,我从这里得到它:http://javatechig.com/android/repeat-alarm-example-in-android

这是我AlarmReceiver.class扩展广播接收器实现IndoorAtlasListener:

public class AlarmReceiver extends BroadcastReceiver implements IndoorAtlasListener 
{ 
@Override 
public void onReceive(Context context, Intent intent) { 
initIndoorAtlas(); 
} 
private void initIndoorAtlas() { 
    try { 
     mIndoorAtlas = IndoorAtlasFactory.createIndoorAtlas(
       getApplicationContext, // this is the redline 
       this, // IndoorAtlasListener 
       mApiKey, 
       mApiSecret); 
    } catch (IndoorAtlasException ex) { 
     Log.e("IndoorAtlas", "init failed", ex); 
    } 
} 

任何人都可以帮助我吗?

回答

0
在你

的onReceive方法

initIndoorAtlas(context); 

和方法

private void initIndoorAtlas(Context context) { 
    try { 
     mIndoorAtlas = IndoorAtlasFactory.createIndoorAtlas(
       context, // this is the redline 
       this, // IndoorAtlasListener 
       mApiKey, 
       mApiSecret); 
    } catch (IndoorAtlasException ex) { 
     Log.e("IndoorAtlas", "init failed", ex); 
    } 
} 

如果方法是形式来实现接口,然后使用这个代码..

private Context context: 

和方法的onReceive

this.context = context; 

在你的方法中使用上下文,因为它是全局变量,我们可以访问它。

+0

没有,不会工作..initIndoorAtlas不采取上下文作为参数 – Psypher

+0

你试图修改这样吗?因为我认为你可以修改当前的方法,因为我已经说过了,它会将上下文作为参数......或者出现任何错误? 好的,如果这是接口方法,那么请参阅修改后的答案 –

相关问题