Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
帮助处理程序类更新UI-Android_Android_User Interface_Handler - Fatal编程技术网

帮助处理程序类更新UI-Android

帮助处理程序类更新UI-Android,android,user-interface,handler,Android,User Interface,Handler,我希望你能帮助我: 我需要为android应用程序更新我的ui,我正在尝试使用Handler类来完成它,使用和android开发者资源“Common Task”来使用Handler作为指南 基本上,我需要介于两者之间的东西——用户界面的定时更新,但没有按钮。下面是我正在编写的相关代码。非常感谢您的帮助 public class Activity1 extends Activity { […变量] 最终处理程序mHandler=新处理程序() [……] 运行操作() 再次感谢 在Android上

我希望你能帮助我:

我需要为android应用程序更新我的ui,我正在尝试使用Handler类来完成它,使用和android开发者资源“Common Task”来使用Handler作为指南

基本上,我需要介于两者之间的东西——用户界面的定时更新,但没有按钮。下面是我正在编写的相关代码。非常感谢您的帮助

public class Activity1 extends Activity {
[…变量]

最终处理程序mHandler=新处理程序()

[……]

运行操作()


再次感谢

在Android上,最好在后台执行任务,同时(逐步)使用此任务的结果更新UI

编辑:


检查代码后,我认为您的处理程序工作正常。问题可能出在
UpdateDisplay()
中。由于您是从后台线程更新显示,请确保在完成视图更新后调用
[view.postInvalidate()][2]

在Android上,最好在后台执行任务,同时(逐步)使用此任务的结果更新UI

编辑:


检查代码后,我认为您的处理程序工作正常。问题可能出在
UpdateDisplay()
中。由于您是从后台线程更新显示,请确保在完成视图更新后调用
[view.postInvalidate()][2]

我的问题是,处理程序代码根本不会定期更新我的ui-它只会显示我的ui而不进行更新。所以我需要知道我做错了什么。彼得,谢谢你的建议-我现在正在研究你的建议。你的
UpdateDisplay()
是否定期被调用?如果是这样,则处理程序工作正常,问题一定在
UpdateDisplay()
内部。在本例中,将代码发布到
UpdateDisplay()
。提示:由于您是从后台线程更新显示,因此在更新视图后需要调用
view.postInvalidate()
。我的问题是处理程序代码根本不定期更新我的ui-它只显示我的ui而不更新。所以我需要知道我做错了什么。彼得,谢谢你的建议-我现在正在研究你的建议。你的
UpdateDisplay()
是否定期被调用?如果是这样,则处理程序工作正常,问题一定在
UpdateDisplay()
内部。在这种情况下,将代码发布到
UpdateDisplay()
。提示:由于您是从后台线程更新显示,因此需要在更新视图后调用
view.postInvalidate()
final Runnable mUpdateResults = new Runnable() {
    public void run() {

        UpdateDisplay();
        mHandler.postDelayed(mUpdateResults, 200);
    }
};


/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
}


protected void startLongRunningOperation() {

    Thread t = new Thread() {
        public void run() {
             if (mStartTime == 0L) {
                 mStartTime = System.currentTimeMillis();
                 mHandler.postDelayed(mUpdateResults, 200);}
            mHandler.post(mUpdateResults);
        }
    };
    t.start();
}