0
私はGoogleのオープンソースAPIライセンスのテキストを含むAlertDialogで開く私のアプリに約画面があります。ただし、AlertDialogをロードするのに30秒ほどかかるため、UIスレッドがフリーズすることがあります。AlertDialogテキストを設定するUIスレッドをフリーズ
private void about() {
AlertDialog.Builder builder= new AlertDialog.Builder(this);
builder.setTitle("About ...");
builder.setNeutralButton("Close",null);
Toast.makeText(this,"Loading...",Toast.LENGTH_LONG).show();
GoogleApiAvailability googleApi=GoogleApiAvailability.getInstance();
String text=googleApi.getOpenSourceSoftwareLicenseInfo(getContext());
String str=getResources().getString(R.string.about_message);
str+=text;
builder.setMessage(str);
builder.show();
}
EDIT:この遅れを引き起こしている行は、ダイアログのテキストを設定1です。
注:私はすでに、AsyncTaskですべてを実行しようとしましたが、何も変更されませんでした。
すべての行の間でデバッグプリントを行うと、どの行がアプリケーションをハングアップさせているのかがわかります – Bill
これを実行しました。これはテキストを設定するものです – Daniel
" AsyncTaskを使用すると、AsyncTaskを使用してもメソッドがより速く実行されるわけではなく、ブロックされたUIスレッドの問題が解決されます。コールとして、私は、ネットワークの要求であると思う、あなたがそれをスピードアップするためにたくさんあることはありません。 – Egor