在你将这个问题视为重复之前,请知道我看到了这些:
AlertDialog setmessage not working inside Asynctask
ProgressDialog does not want to update the message
Android: Progress Dialog change ProgressDialog.setMessage() while loading
Changing Progress Dialog Message While Running
但没有运气。
我试图在显示的ProgressDialog内更新消息。是的。就这么简单。
现在我的代码看起来像这样:
private BroadcastReceiver createMapReceiver(MapEntry entry) {
return new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
...
dialogMessage = getString(R.string.maps_download_extracting)
.concat("\n\n")
.concat(getString(R.string.maps_download_suffix));
Runnable changeMessage = () -> {
downloadingDialog.setMessage(dialogMessage);
downloadingDialog.show();
};
runOnUiThread(changeMessage);
...
}
};
}
但是消息没有更新。其他一切都按预期工作。我错过了什么?
答案 0 :(得分:0)
我找到了解决方案。
但我仍然不知道为什么它不起作用。
奇怪的是,我只是在接收器中调用另一个函数,这将继续这个过程。
像这样:
private BroadcastReceiver createMapReceiver(MapEntry entry) {
return new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
downloadingDialog.dismiss();
unregisterReceiver(this);
...
receiveDownloadedFile(new File(completeFilePath), entry);
}
};
}
private void receiveDownloadedFile(File downloadedFile, MapEntry entry) {
downloadingDialog.setMessage("TEST MESSAGE");
...
}