gpt4 book ai didi

android - 从 Android 中的服务使用 SQLite 数据库

转载 作者:太空宇宙 更新时间:2023-11-03 11:49:09 24 4
gpt4 key购买 nike

我想知道以下是否可行。我想要一个 Activity 和一个服务都对数据库进行更改,一旦 Activity 停止运行,服务是否仍然能够访问和更改数据库的内容?

我知道服务可以在 Activity 关闭后独立运行,但不确定数据库访问是否仍能继续?

最佳答案

是的,您可以在您的服务中使用 sqlite 数据库,即使应用程序进入后台,或者应用程序被从最近的应用程序列表中滑动杀死。

我创建了一个非常简单的 demo .

它只是一个带有空表的数据库。而且我每 10 秒就会得到表是否包含服务中的任何记录。即使应用程序在后台或被杀死,它也会给我 toast 消息。

@Override
public int onStartCommand(Intent intent, int flags, int startId) {

final Handler mHandler = new Handler();
mRunnable = new Runnable() {
@Override
public void run() {
MyDBHelper myDBHelper = new MyDBHelper(getApplicationContext());
boolean isInfoAvailable = myDBHelper.isAnyInfoAvailable(getApplicationContext());
Toast.makeText(getApplicationContext(), String.valueOf(isInfoAvailable), Toast.LENGTH_LONG).show();
mHandler.postDelayed(mRunnable, 10 * 1000);
}
};
mHandler.postDelayed(mRunnable, 10 * 1000);
return super.onStartCommand(intent, flags, startId);
}

您需要确定的是:

服务应在后台运行。

在您的 list 文件中,为服务使用标志 android:stopWithTask="false"

<service
android:name=".MyService"
android:enabled="true"
android:exported="true"
android:stopWithTask="false">
</service>

希望这对您有所帮助。 :)

关于android - 从 Android 中的服务使用 SQLite 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28292682/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com