以下代码位于android活动类中。 当应用程序处于活动状态时,项目需要一个不间断的线程,当应用程序处于活动/关闭状态时,该项目需要停止。
我预计会在logCat中看到一个不停的“Hello World”消息显示。但是,我仅看到一次 Hello World messgae。 我的代码有什么不对,所以我能够看到一个不停的“Hello World”
希望有人建议。感谢
@Override
protected void onStart(){
super.onStart();
Log.e("onStart","beforeStart");
new HttpRequestTask().execute();
Log.e("onStart","Start");
this.pickButtonThread();
}
private void pickButtonThread(){
new Thread() {
@Override
public void run() {
try {
// code runs in a thread
PickerItemActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
// code runs in a UI(main) thread
//isPickButtonEnableDisable();
//new HttpRequestTask().execute();
Log.e("pickButtonThread", "Hello World");
}
});
} catch (final Exception ex) {
}
}
}.start();
}
答案 0 :(得分:2)
那是因为你的run()
方法中没有任何循环,所以它只运行一次并退出。但是,声明无限循环并不是一个好主意,因为如果内存不足,Android OS
可能会杀死它。
您可以使用Handler
使用.postDelayed()
方法每隔X秒发布一次消息。
private Handler mHandler = new Handler();
private Runnable mUpdateTimeTask = new Runnable() {
public void run() {
Log.e("pickButtonThread", "Hello World");
mHandler.postDelayed(this, 1000); // Every second
}
};