0

すべての TextView/EditText でスペル チェックを無効にするにはどうすればよいですか。

テキストビューで setText() を呼び出すと、最終的に非同期タスクを作成するスペルチェッカーサービスが呼び出されるため、これを行いたいと考えています。私のアプリケーションでは、setText を呼び出す edittext のボリュームがスレッド プールに対して非常に多くのタスクを作成する可能性があるというバグが発生し、最終的に RejectedExecutionException が発生します。

06-25 09:26:14.442: E/Forms(10981): java.util.concurrent.RejectedExecutionException: Task android.widget.TextView$3@3a7e75dd rejected from java.util.concurrent.ThreadPoolExecutor@257f6244[Running, pool size = 5, active threads = 5, queued tasks = 128, completed tasks = 6382]
06-25 09:26:14.442: E/Forms(10981):     at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2011)
06-25 09:26:14.442: E/Forms(10981):     at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:793)
06-25 09:26:14.442: E/Forms(10981):     at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1339)
06-25 09:26:14.442: E/Forms(10981):     at android.os.AsyncTask.execute(AsyncTask.java:608)
06-25 09:26:14.442: E/Forms(10981):     at android.widget.TextView.updateTextServicesLocaleAsync(TextView.java:8344)
06-25 09:26:14.442: E/Forms(10981):     at android.widget.TextView.getTextServicesLocale(TextView.java:8300)
06-25 09:26:14.442: E/Forms(10981):     at android.widget.TextView.getSpellCheckerLocale(TextView.java:8337)
06-25 09:26:14.442: E/Forms(10981):     at android.widget.SpellChecker.spellCheck(SpellChecker.java:220)
06-25 09:26:14.442: E/Forms(10981):     at android.widget.Editor.updateSpellCheckSpans(Editor.java:541)

SpellCheckerService は他の場所でも呼び出されるため、try catch ブロックで setText() を囲むことはできません。ビューがビュー グループに追加されたとき。

4

0 に答える 0