Android计时器问题

时间:2010-09-05 04:34:45

标签: android

我发现这个代码适用于Android计时器, 公共类myActivity扩展了Activity {

private Timer myTimer;

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

    myTimer = new Timer();
    myTimer.schedule(new TimerTask() {
        @Override
        public void run() {
            TimerMethod();
        }

    }, 0, 1000);
}

private void TimerMethod()
{
    //This method is called directly by the timer
    //and runs in the same thread as the timer.

    //We call the method that will work with the UI
    //through the runOnUiThread method.
    this.runOnUiThread(Timer_Tick);
}

private Runnable Timer_Tick = new Runnable() {
    public void run() {

    //This method runs in the same thread as the UI.               

    //Do something to the UI thread here

    }
};

} 我需要理解一件事......评论说这个方法在与Ui相同的线程中运行,这意味着即使屏幕关闭或者活动被推到后台,这个方法也会继续运行。如果有来电?

1 个答案:

答案 0 :(得分:0)

不,所有这些意味着特定方法在与THAT ACTIVITY'S UI相同的线程上下文中运行。

意思是,是的,它会按预期在后台运行。 (只要您的活动正在运行并不总是保证。即如果用户按下主页或启动任何其他应用程序,操作系统可以随时终止您的活动。

因此,如果您有一个电话,或者屏幕显示特定代码将能够通过诸如toasts或其活动UI之类的东西来修改UI。

至少在理论上,自己实际测试这些东西并没有什么坏处。