gpt4 book ai didi

android - 预加载 progressDialog 使我的应用程序仅在 ICS 中崩溃

转载 作者:行者123 更新时间:2023-11-29 22:04:36 25 4
gpt4 key购买 nike

因此,当使用函数“setUpDB”设置数据库时,我使用此代码显示消息“正在安装...”,然后在数据库函数完成后将其删除。这在 Gingerbread 和 honeycomb 中工作正常,但会导致应用程序在 ICS 中崩溃

        final ProgressDialog pd=ProgressDialog.show(this,"","Installing...");

final Handler handler = new Handler()
{
public void handleMessage(Message msg)
{
if(msg.what==0)
{
pd.dismiss();
}
}
};


//have subcategory heading???
Thread thread = new Thread()
{
@Override
public void run() {
setUpDB();
handler.sendEmptyMessage(0);
}
};
thread.start();

如果不消除该消息,应用程序将继续在 ICS 中运行(但您不能执行任何操作),并且如果用户在完成设置之前执行任何访问数据库的操作,则不会显示该消息,应用程序将崩溃(这就是为什么我需要安装消息)..

好的,这是使用 AsyncTask 的代码

    final ProgressDialog pd=ProgressDialog.show(this,"","Installing...");
final Handler handler = new Handler()
{
public void handleMessage(Message msg)
{
if(msg.what==0)
{
pd.dismiss();
}
}
};
new databaseInstallTask().execute(handler);

    private class databaseInstallTask extends AsyncTask<Handler, Void, Handler> 
{
@Override
protected Handler doInBackground(Handler... params) {
setUpDB();
return params[0];
}

protected void onPostExecute(Handler handler) {
handler.sendEmptyMessage(0);
}
}

最佳答案

你为什么不尝试使用 Asynctask,我认为这是处理你的情况的最合适的方法。

关于android - 预加载 progressDialog 使我的应用程序仅在 ICS 中崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11032436/

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