gpt4 book ai didi

java - 将进度微调器添加到应用程序 boolean 值

转载 作者:行者123 更新时间:2023-12-01 14:23:38 25 4
gpt4 key购买 nike

在我的代码中,我有一个 boolean 值可以通过首选项将信息安装到数据库中。它工作正常,但问题是现在有很多信息要添加到应用程序中,并且在将信息添加到 sqlite 中时出现黑屏(仅在安装期间)。我如何添加进度微调器,以便用户知道应用程序正在安装过程中。我担心他们盯着黑屏会认为应用程序坏了。

        /** Insert list into db once */
if (pref.getBoolean("isFirst", true)) {
readBLContactsfromAssetsXMLToDB("list.xml");
pref.edit().putBoolean("isFirst", false).commit();
}

addQuickActions();
}

最佳答案

首先你可以使用AsyncTask用于执行需要很长时间的过程。如果您不知道,它允许执行后台操作并在 UI 线程上发布结果,而无需操作线程和/或处理程序。

但是如果您坚持不使用它,那么由于您阻塞了 UI 线程,因此您无法同时显示对话框并执行您的操作。您需要有一个后台线程来处理这个漫长的过程,并在 UI 线程上显示进度对话框。

网上有很多AsyncTaks的例子。仅作为示例:

private class OuterClass extend Activity{
//....

@Override
public void onCreate(Bundle savedInstanceState) {
new performBackgroundTask ().execute();
}
//....
private class performBackgroundTask extends AsyncTask < Void, Void, Void >
{
private ProgressDialog dia;
// This method runs in UI thread before the background process starts.
@Override
protected void onPreExecute(){
// Show dialog
dia = new ProgressDialog(OuterClass.this);
dia.setMessage("Installing...");
dia.show();
}

@Override
protected Void doInBackground(Void... params) {
// Do all the stuff here ...
addQuickActions();
}

// Ececutes in UI thread after the long background process has finished
@Override
protected void onPostExecute(Void result){
// Dismiss dialog
dia.dismiss();
}
}
}

您可能会看到How to display progress dialog before starting an activity in Android?

希望这有帮助。

关于java - 将进度微调器添加到应用程序 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17333854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com