在AlarmManager中获取GetDabataseLocked + NPE

时间:2014-06-11 15:00:52

标签: android mysql sqlite alarmmanager

我有一个每天在同一时间运行的AlarmManager。 警报的目的是在sqlite和MySQL之间同步应用程序。

事情就是当我使用我的sqlite数据库时,我使用:

SQLiteDatabase db = this.getWritableDatabase();

这一行给了我一个NPE,可能因为它是null(因为该方法是在应用程序之外调用的)

我怎么能把这一行写成与上下文无关的?

2 个答案:

答案 0 :(得分:0)

getDatabaseLocked()中的NPE是因为您将null Context传递给SQLiteOpenHelper构造函数。

答案 1 :(得分:0)

问题是

The Context that you are passing to the SQLiteOpenHelper constructor is null.

溶液

传递application context.make一个java类并使用应用程序类扩展它并返回context.also将此类添加到应用程序标记中的清单中,如:

android:name="com.yourpkgname.yourclassname"