在您的服务中使用AsyncTask来完成繁重的数据库工作。
并使用Shared Preferences保存一个标志,以通知其他活动正在进行中。当标志为真时表示工作正在进行中,当标志为假时表示工作已完成。
做这样的事情:
private class DatabaseWork extends AsyncTask<String, Integer, Long> {
protected void onPreExecute ()
{
//Set SharedPref flag = trueto notify other activities that work has been started.
}
protected Long doInBackground(URL... urls) {
//Your database work
return false;
}
protected void onProgressUpdate(Integer... progress) {
//if you want to show progress to user
}
protected void onPostExecute(Long result) {
//after complete your work set SharedPref flag = false to notify other activities that work has been finished.
}
}
现在您可以检查每个活动 onCreate 或 onResume 事件的 SharedPref 标志值。如果您发现 true,那么您可以显示一个进度对话框来告诉用户等待。