我需要在删除数据库之前停止一对服务。服务正在访问数据库,如果它们没有停止,应用程序将崩溃。
像这样:
stopService(new Intent(CurrentClass.this, FirstService.class));
stopService(new Intent(CurrentClass.this, SecondService.class));
CurrentClass.this.deleteDatabase(MyDatabaseHelper.DATABASE_NAME);
据我所知,问题是stopService是异步的。如何在删除数据库之前强制停止服务?
谢谢!
答案 0 :(得分:2)
据我所知,服务被销毁的具体时间取决于Android,可能不会立即生效。所以请记住这一点......我认为你检查你的服务会更好如果您的数据库可用 ..然后访问它......如果您认为..如果数据库可用,则不应该进行此检查,始终在服务中...然后在您调用之前
stopService(new Intent(CurrentClass.this, FirstService.class));
stopService(new Intent(CurrentClass.this, SecondService.class));
广播一个意图,要求服务停止并在您的服务中实现一个监听器,并在接收该监听器时启动检查数据库是否可用的方法....比如这.. ..例如..
//this is in your service..
bool stopping=false
.......
if(stopping)
{
//check if your databse is available and access it
}
else{
//access your database directly..
}
并接收你的广播接收器
@Override
public void onReceive(Context context, Intent intent){
stopping=true;
}