【发布时间】:2020-03-14 13:20:52
【问题描述】:
我开发了一个应用程序,我一次又一次地使用相同的 textview,所以我需要非常频繁地清除 textview。
由于它与 UI 有关,我必须在 UI 线程上执行此任务,但仅清除 textview 需要 5-6 毫秒,我猜这似乎非常巨大。谁能帮我减少这段时间,这样我就可以非常顺利地管理我的 UI 任务而不会跳过任何帧?
我附上我的代码 sn-p 作为参考,我尝试了两种方法,但最短时间是 5 毫秒。
公共类 MainActivity 扩展 AppCompatActivity { 编辑文本编辑文本; 按钮 btnClearText; @覆盖 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText = findViewById(R.id.editText); btnClearText = findViewById(R.id.btnClearText); btnClearText.setOnClickListener(new View.OnClickListener() { @覆盖 公共无效 onClick(查看 v){ // 使用空文本进行测试 editText.setText(""); // 尝试使用 setText(''); Log.e("clearText", "setText(''): start "+ new Date().getTime()); editText.setText(""); Log.e("clearText", "setText(''): end" + new Date().getTime()); // 相差 15 毫秒 // 尝试使用 getText().clear(); Log.e("clearText", "getText().clear(): 开始" + new Date().getTime()); editText.getText().clear(); Log.e("clearText", "getText().clear(): end" + new Date().getTime()); // 5毫秒的差异 } }); } }有任何提高性能的建议或替代方法吗?
谢谢,
【问题讨论】:
-
为什么你使用相同的textview/edittext?
-
您可以尝试
到 strings.xml 并使用 textView.setText(R.string.empty)。还有 textview.settext(null) -
我开发了一个聊天应用程序,在其中我使用相同的编辑文本来发送消息,一旦我们按下发送按钮,我需要清除编辑文本以输入新消息。
-
@MajidAli 我已经尝试过了,但需要更多时间才能检查我的代码 sn-p。
标签: android