Android 更新数据库时使用AlertDialog或Toast
我有一个带有数据库的应用程序。当数据更新时,我想显示一个带有旋转圆圈的Android 更新数据库时使用AlertDialog或Toast,android,database,updating,Android,Database,Updating,我有一个带有数据库的应用程序。当数据更新时,我想显示一个带有旋转圆圈的AlertDialog或Toast。首先,您必须使用AsyncTask在后台线程中执行所有事务。 然后,当事务在后台线程中处理时,您只需在UI线程上显示ProgressDialog 这里是一个简单的AsyncTask模板,它在ProgressDialog中包含一个旋转圆,也称ProgressBar private class UpdateDataBaseAsyncTask extends AsyncTask<String
AlertDialog
或Toast
。首先,您必须使用AsyncTask在后台线程中执行所有事务。
然后,当事务在后台线程中处理时,您只需在UI线程上显示ProgressDialog
这里是一个简单的AsyncTask
模板,它在ProgressDialog
中包含一个旋转圆,也称ProgressBar
private class UpdateDataBaseAsyncTask extends AsyncTask<String, Integer, Boolean>
{
ProgressDialog pd;
public UpdateDataBaseAsyncTask (..Your set of Variables for updating database..)
{
pd = new ProgressDialog(cntx);
pd.setTitle("Updating ...");
pd.setCancelable(false);
pd.setProgressStyle(ProgressDialog.STYLE_SPINNER);
//Initialization of your Database Handler, and other Database Transaction related objects.
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
pd.show();
}
@Override
protected Boolean doInBackground(String... arg0) {
// TODO Auto-generated method stub
try
{
//Start Database Tranaction Here !
//If the Transaction is successful, pass the boolean as true *result = true;*
}
catch(Exception e)
{
Log.e("YOUR TAG", "Error occured while updating Database !, Error = "+e.toStirng());
//e.printStackTrace(); optional
result = false;
}
return result;
}
@Override
protected void onPostExecute(Boolean result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
pd.dismiss();
if(result)
{
//tasks you want to perform when the database is successfully updated
}
else
{
//Show a failure Dialog here may be.
}
}
}
我希望这会有所帮助。我已经解决了Looper Prepare()的问题。您是否使用task/asynctask来执行此操作?以前会使用什么版本的android?数据库来自哪里?这可能是设备本身上的数据库,也可能是托管在某处的数据库。如果它是托管的,您可以为此使用AsyncTask。在dall上显示服务的对话框,然后在POST上执行关闭该对话框或显示toast消息。此外,吐司不能有这样的转折点。:)它工作得很好,但当完成时。。。01-22 18:55:17.602:W/dalvikvm(1038):threadid=11:线程以未捕获异常退出(group=0x409c01f8)01-22 18:55:17.762:E/AndroidRuntime(1038):致命异常:AsyncTask#1原因:java.lang.RuntimeException:无法在未调用Looper的线程内创建处理程序。prepare()请共享异步类的代码。
YourActivity extends Activity
{
...
...
...
onCreate(...)
{
//Your Implementation
...
...
...
//Calling the AsyncTask
new UpdateDataBaseAsyncTask(...).execute();
}
...
...
...
}