我可以同步停止服务吗?

时间:2012-04-06 04:02:11

标签: android service

我需要在删除数据库之前停止一对服务。服务正在访问数据库,如果它们没有停止,应用程序将崩溃。

像这样:

stopService(new Intent(CurrentClass.this, FirstService.class));
stopService(new Intent(CurrentClass.this, SecondService.class));
CurrentClass.this.deleteDatabase(MyDatabaseHelper.DATABASE_NAME);

据我所知,问题是stopService是异步的。如何在删除数据库之前强制停止服务?

谢谢!

1 个答案:

答案 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;
   }