2012-03-07 29 views
0

我創建了一個簡單的廣播接收器,其唯一目的是當手機啓動時啓動一個alarmmanager方法,我把它放在一個擴展的應用程序文件中處理這樣的應用程序範圍的任務,當我從一個活動中調用它時,這工作正常,但是當我試圖從廣播接收器調用它時,它崩潰並且不起作用,我想我可能需要以某種方式將上下文附加到它上面?Android廣播接收器返回空指針異常與擴展應用程序

這裏是我的代碼:

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);  
} 
+0

它在startChecks()崩潰了嗎?我們需要了解更多信息以幫助我思考。 – davehale23 2012-03-07 18:01:47

+0

我添加了它從擴展應用程序中執行的方法 – 2012-03-07 18:15:20

回答

1

你應該總是發表您的堆棧跟蹤你的問題詢問有關Android的崩潰時一起,但它看起來像app是從來沒有初始ized,但你使用它在onReceive

+0

什麼是我應該初始化應用程序的例子? – 2012-03-07 18:20:06

+0

假設它是您的擴展應用程序:'app =(OTweetApplication)getApplicationContext();' – kabuko 2012-03-07 18:26:56

1

你永遠不會初始化/分配的東西app,所以它是空:

private OTweetApplication app; 

而當你把它(app.startChecks();)你得到的異常。

+0

什麼是我應該初始化應用程序的示例? – 2012-03-07 18:20:00

+0

說實話 - 我不知道 - 我以前從未與OTweetApplication合作過。 – MByD 2012-03-07 18:24:57

相關問題