android EditText在输入文本时滞后

我正在开发某种聊天应用程序,一切都很顺利,但我遇到了一个问题。 EditText滞后,每当我在edittext中输入一些字母时,我的android键盘会在第二个或某些时候被冻结。 我真的不知道要提供什么代码,因为它只是一个简单的EditText框。 这是我如何做到的:

linforbutton.add(new LinearLayout(this)); //linear layout on the bottom os creen for edittext and button RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); linforbutton.get(x).setLayoutParams(params); linforbutton.get(x).setBackgroundColor(0xff426193); linforbutton.get(x).setOrientation(LinearLayout.HORIZONTAL); int padding_in_dp1 = 3; final float scale1 = getResources().getDisplayMetrics().density; int padding_in_px1 = (int) (padding_in_dp1 * scale1 + 0.5f); linforbutton.get(x).setPadding(0, 0, 0, 0); relmsg.get(x).addView(linforbutton.get(x)); msginput.add(new EditText(this)); msginput.get(x).setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1f)); msginput.get(x).setMaxLines(3); msginput.get(x).setMinLines(1); msginput.get(x).setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES); msginput.get(x).setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE); msginput.get(x).setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES); msginput.get(x).setImeOptions(EditorInfo.IME_ACTION_SEND); msginput.get(x).setImeOptions(EditorInfo.IME_FLAG_NO_ENTER_ACTION); linforbutton.get(x).addView(msginput.get(x)); btninput.add(new Button(this)); btninput.get(x).setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); btninput.get(x).setText("Отпр."); int padding_in_dp2 = 20; final float scale2 = getResources().getDisplayMetrics().density; int padding_in_px2 = (int) (padding_in_dp2 * scale2 + 0.5f); btninput.get(x).setPadding(padding_in_px2, 0, padding_in_px2, 0); linforbutton.get(x).addView(btninput.get(x)); 

我做了一些视图,所以我有一个for循环,不要看数组。 我尝试删除数组,只使一个视图一个edittext一个按钮,它不起作用。

所以看起来你的线程可能会相互冲突。 查看您的事件监听器,也许其中一个持有该过程。 我不久前用GPS监听器(onLocationChanged)解决了这个问题。

我从这个监听器将数据发布到服务器,它刚刚杀死了应用程序。 将该代码块移动到新线程后,它解决了我的问题。