Android广播接收器返回扩展应用程序的空指针异常

Android广播接收器返回扩展应用程序的空指针异常,android,broadcastreceiver,Android,Broadcastreceiver,我创建了一个简单的广播接收器,它的唯一用途是当手机启动时启动alarmmanager方法,我将该方法藏在一个扩展应用程序文件中,该文件处理像这样的应用程序范围内的任务,当我从某个活动调用它时,它工作正常,但当我试图从广播接收器调用它时,它崩溃并且不工作,我想的是也许我需要以某种方式将上下文附加到它上 这是我的密码: package com.testapp21.second.activities; import com.testapp21.second.OTweetApplication; im

我创建了一个简单的广播接收器,它的唯一用途是当手机启动时启动alarmmanager方法,我将该方法藏在一个扩展应用程序文件中,该文件处理像这样的应用程序范围内的任务,当我从某个活动调用它时,它工作正常,但当我试图从广播接收器调用它时,它崩溃并且不工作,我想的是也许我需要以某种方式将上下文附加到它上

这是我的密码:

package com.testapp21.second.activities;

import com.testapp21.second.OTweetApplication;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class PhoneOnReceiver extends BroadcastReceiver {
private OTweetApplication app;

@Override
public void onReceive(Context context, Intent intent) {

        app.startChecks();

}
}

编辑:startChecks然后委托给名为startCheckshelper()的帮助文件中的一个方法这段代码如下所示:

public void startCheckshelper(){
    mAlarmSender = PendingIntent.getService(context,
              0, new Intent(context, CheckerService.class), 0);

    // We want the alarm to go off 30 seconds from now.
      long firstTime = SystemClock.elapsedRealtime();

      // Schedule the alarm!
      AlarmManager am = (AlarmManager)context.getSystemService(Service.ALARM_SERVICE);
      am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
                      firstTime, 60*1000, mAlarmSender);    
}

当你询问安卓系统崩溃时,你应该总是将你的堆栈跟踪与你的问题一起发布,但是看起来
应用程序
从未初始化过,而你在
onReceive
中使用它,你从未初始化/分配过某个东西给
应用程序
,所以它是空的:

private OTweetApplication app;

当你调用它(
app.startChecks();
)时,你会得到一个异常。

它在startChecks()中崩溃了吗?我们需要了解更多信息来帮助我思考。我在扩展应用程序中执行的方法中添加了什么样的示例,我应该将应用程序初始化为?老实说,我不知道,我以前从未使用过OTweetApplication。我应该将应用程序初始化为什么样的示例?假设它是您的扩展应用程序:
app=(OTweetApplication)getApplicationContext()