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