我想创建一个简单的服务(基于 ApiDemos\app\AlarmService_Service 示例)在服务的线程中,我想每 15 秒向本地数据库添加一条记录。
但问题是我创建的数据源(在http://www.vogella.com/articles/AndroidSQLite/article.html文章的帮助下)需要Context
对象才能启动数据源。
在不久的将来,我希望像这个示例这样的服务在设备启动时也能运行。所以我的问题是如何在没有上下文的情况下使用 sqlite?
我想创建一个简单的服务(基于 ApiDemos\app\AlarmService_Service 示例)在服务的线程中,我想每 15 秒向本地数据库添加一条记录。
但问题是我创建的数据源(在http://www.vogella.com/articles/AndroidSQLite/article.html文章的帮助下)需要Context
对象才能启动数据源。
在不久的将来,我希望像这个示例这样的服务在设备启动时也能运行。所以我的问题是如何在没有上下文的情况下使用 sqlite?
所以我的问题是如何在没有上下文的情况下使用 sqlite?
Service
继承自Context
,所以你有一个Context
. 请记住,如果您希望其他线程也使用数据库,则需要有一个单例SQLiteOpenHelper
(或)。SQLiteDatabase
顺便说一句,这个样本很可能是谷歌发布的最糟糕的样本。我不完全清楚为什么用户希望您在后台“每 15 秒向本地数据库添加一条记录”,但该示例:
Notification
无特殊原因显示 aIntentService
为你处理的线程Binder
AlarmManager
使用警报的正确方法_WAKEUP
是使用我WakefulIntentService
的或Android 支持包的WakefulBroadcastReceiver
. 我已经发布了一个使用WakefulIntentService
with的示例AlarmManager
和一个使用WakefulBroadcastReceiver
.