0
我無法從我的broadcast receiver
訪問我的SQlite
數據庫。它甚至有可能嗎?我不斷收到NullPointerException
。在onReceive of the BroadcastReceiver
我打電話從廣播接收器訪問數據庫?
mDbHelper = new ResponderDbAdapter(context);
mDbHelper.open();
是否與上下文有關?我想將我在MainActivity
中設置的數據庫信息拖入BroadCast Receiver
。
想法?
編輯:
ERROR:
07-29 16:43:46.491: ERROR/AndroidRuntime(6772): FATAL EXCEPTION: main
07-29 16:43:46.491: ERROR/AndroidRuntime(6772): java.lang.RuntimeException: Unable to start receiver com.test.example.feed.receiver.RecieveSMS: java.lang.NullPointerException
07-29 16:43:46.491: ERROR/AndroidRuntime(6772): at android.app.ActivityThread.handleReceiver(ActivityThread.java:1805)
07-29 16:43:46.491: ERROR/AndroidRuntime(6772): at android.app.ActivityThread.access$2400(ActivityThread.java:117)
07-29 16:43:46.491: ERROR/AndroidRuntime(6772): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:981)
07-29 16:43:46.491: ERROR/AndroidRuntime(6772): at android.os.Handler.dispatchMessage(Handler.java:99)
07-29 16:43:46.491: ERROR/AndroidRuntime(6772): at android.os.Looper.loop(Looper.java:130)
07-29 16:43:46.491: ERROR/AndroidRuntime(6772): at android.app.ActivityThread.main(ActivityThread.java:3684)
07-29 16:43:46.491: ERROR/AndroidRuntime(6772): at java.lang.reflect.Method.invokeNative(Native Method)
07-29 16:43:46.491: ERROR/AndroidRuntime(6772): at java.lang.reflect.Method.invoke(Method.java:507)
07-29 16:43:46.491: ERROR/AndroidRuntime(6772): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:845)
07-29 16:43:46.491: ERROR/AndroidRuntime(6772): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:603)
07-29 16:43:46.491: ERROR/AndroidRuntime(6772): at dalvik.system.NativeStart.main(Native Method)
07-29 16:43:46.491: ERROR/AndroidRuntime(6772): Caused by: java.lang.NullPointerException
07-29 16:43:46.491: ERROR/AndroidRuntime(6772): at com.test.example.feed.receiver.RecieveSMS.onReceive(RecieveSMS.java:67)
07-29 16:43:46.491: ERROR/AndroidRuntime(6772): at android.app.ActivityThread.handleReceiver(ActivityThread.java:1794)
07-29 16:43:46.491: ERROR/AndroidRuntime(6772): ... 10 more
編輯:更好的解釋
我有一個單獨的活動,允許用戶將項目添加到數據庫中。我想與接收者分享這些信息,以便廣播接收者知道數據庫中有哪些項目。 ResponderDbAdapter是一個訪問Db並執行提取和插入到DB的類。上下文會是什麼......如果我的廣播接收器即使在應用程序關閉時也能運行,它如何訪問數據庫?
是的,這可能(我在我的應用程序中這樣做),但是您需要發佈一些更多的代碼或至少是堆棧跟蹤。 – Jason
你能解釋一下你是如何做到的嗎?我已經添加了堆棧跟蹤 –
您需要確保您使用的是正確的上下文。在您有機會訪問您的數據庫之前,廣播接收器也可能會終止。 – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz