Wih*_*rie 4 sqlite android android-service
我想知道以下是否可行.我希望有一个活动和服务都对数据库进行更改,一旦活动停止运行,服务是否仍然能够访问和更改数据库的内容?
我知道服务一旦关闭就可以独立于活动运行,但是不确定数据库访问是否仍然可以继续?
Mys*_*icϡ 11
是的,您可以在服务中使用sqlite数据库,即使应用程序转到后台,或者使用从最近的应用程序列表中滑动来杀死应用程序.
我创建了一个非常简单的演示.
它只是一个带有空表的数据库.而且我每隔10秒钟就会知道表中是否包含任何记录.即使应用程序在后台,它也会给我吐司消息,或者它被杀死.
@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);
}
Run Code Online (Sandbox Code Playgroud)
您需要确保的是:
服务应该在后台运行.
在清单文件中,使用flag android:stopWithTask="false"作为服务.
<service
android:name=".MyService"
android:enabled="true"
android:exported="true"
android:stopWithTask="false">
</service>
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.:)
| 归档时间: |
|
| 查看次数: |
13017 次 |
| 最近记录: |