2012-07-24 132 views
0

我想從我的應用程序的SQLite數據庫使用報警管理器獲取一些值。 現在大家都知道它擴展SQLiteOpenHelper需要上下文DB類和broadcastreciever得到這樣一個背景:如何從broadcastreciever(ReceiverRestrictedContext)訪問數據庫?

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

的問題是,當我打電話與這方面,我得到下面的異常DB類:

無法啓動接收機com.ayham.mycar.AlarmBroadcastReceiver:java.lang.ClassCastException:android.app.ReceiverRestrictedContext

的完整代碼是這樣的:

public class AlarmBroadcastReceiver extends BroadcastReceiver { 
NotificationManager nm; 
@Override 
public void onReceive(Context context, Intent intent) { 
    //get the values from the DB: 
    DBhelper mDBGet=new DBhelper(context); 
    Cursor mCursor=mDBGet.allProperties((Activity) context);}} 

我知道我不應該把上下文轉換成一個Activity,但是如果我沒有編譯器給我一個錯誤。 我怎麼能做到這一點?

回答

1

廣播接收器應該很亮。因此,最好的辦法是將其委派給一項活動或一項服務......並且當您開始和活動/服務時,您可以使用這個作爲上下文。

+0

謝謝我會嘗試 – Ayham 2012-07-24 11:32:10

+0

它沒有工作,現在我得到一個NullpointerException上下文 – Ayham 2012-07-24 14:45:13