gpt4 book ai didi

java - 从线程启动一个 Activity

转载 作者:行者123 更新时间:2023-12-01 15:00:07 25 4
gpt4 key购买 nike

我有一个生成 pdf 文件的类。该类由 Activity 扩展,这意味着它具有 onCreate、onPause(等等)方法。

生成 pdf 文件时需要一些时间,因此我需要显示一个进度条来通知用户当前正在生成文件。

一切正常,当我单击生成按钮时,进度条会卡住几秒钟(根据 Logcat:文件生成时进度条卡住)。

所以我的问题是,我不知道如何在文件生成时使进度条不可停止。

下面是我的代码:

Log.i(TAG, "PDF generation: " + position);

final ProgressDialog dialog = new ProgressDialog(this);
dialog.setCancelable(true);
dialog.setIndeterminate(true);
dialog.setMessage("Generating...");
dialog.show();

new Thread(new Runnable() {

@Override
public void run() {

startActivity(new Intent(getApplicationContext(),
PdfGenerator.class));

runOnUiThread(new Runnable() {

@Override
public void run() {
dialog.hide();
}
});

}

}).start();

最佳答案

更改代码以使用 runOnUiThread 从线程启动 Activity :

///... your code here..

new Thread(new Runnable() {

@Override
public void run() {

Your_Current_Activity.this.runOnUiThread(new Runnable() {

@Override
public void run() {

dialog.cancel();

// START ACTIVITY HERE
Your_Current_Activity.this.startActivity(new
Intent(Your_Current_Activity.this,
PdfGenerator.class));

}
});

}

}).start();

关于java - 从线程启动一个 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13779742/

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