我发现这个代码适用于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相同的线程中运行,这意味着即使屏幕关闭或者活动被推到后台,这个方法也会继续运行。如果有来电?
答案 0 :(得分:0)
不,所有这些意味着特定方法在与THAT ACTIVITY'S UI相同的线程上下文中运行。
意思是,是的,它会按预期在后台运行。 (只要您的活动正在运行并不总是保证。即如果用户按下主页或启动任何其他应用程序,操作系统可以随时终止您的活动。
因此,如果您有一个电话,或者屏幕显示特定代码将能够通过诸如toasts或其活动UI之类的东西来修改UI。
至少在理论上,自己实际测试这些东西并没有什么坏处。