如何在Android中暂停UI更新?

时间:2014-11-10 09:02:22

标签: android asynchronous

我有一个Android应用程序,其主要活动使用AsyncTask不断下载并从互联网解析XML,并使用onPostExecute();

将值更新为UI

然而,

还有一个EditText,可以使用按钮编辑值并更新为XML。

但我无法在EditText上输入任何值,因为它每隔3秒由onPostExecute();更新一次。

(当我完成输入我的值时,它会被XML中更新的值清除)

我已实施onClickListener();并尝试了onPause();,但没有效果。

我应该如何暂停UI更新/应用程序?

编辑#1

Protected Void onCreate(...){
    ......
    listener();
    runnablecode.run();
}

public void run(){
    AsyncDownloader downloadxml = new AsyncDownloader();
    downloadxml.execute();
    handler.postDelay(runnablCode,poll_interval);
}
private void listener();{
    EditText atten = (EditText)findViewById(R.id.attenEditText);
    atten.setOnTouchListener(new View.OnTouchListener(){

    @Override
    public boolean onTouch(View v, MotionEvent event){
        //I want to pause UI updating the EditText here
        return false;
       }
    });
}

2 个答案:

答案 0 :(得分:0)

暂停 - 使用异步任务无法恢复。你将不得不用一些黑客来处理它。

输入/处理编辑文本后,尝试取消并重新开始。

请参阅Pause and Resume AsyncTasks? (Android)

答案 1 :(得分:0)

您可以在通过异步任务更新之前检查EditText是否处于焦点。