Java(Android)有关线程的执行问题

我现在在Service里进行了一个网络操作,叫netOperation();新开了一个线程去执行他,newThread(){run(){netOperation();}}... 我现在在Service里进行了一个网络操作,叫netOperation();
新开了一个线程去执行他,
new Thread() {
run() {
netOperation();
}
}.start();
在执行完毕(网络操作完毕)后,如果我想再次调用它,这个线程应该怎么办?
就是我的天气预报从服务器获得xml,这个过程在新建的thread中完成,然后用户点击更新按钮或者其他地方主动调用更新,这时应该如何对这个线程进行操作?

我希望只保留一个新的线程,而不是每次获取都新建一个。并且希望得到当前线程的状态,比如说在用户点击更新时,判断当前链接线程是否在获取,如果正在就不进行操作。

希望可以帮帮我:)

回答得比较清晰地追加分哦
展开
 我来答
修怀芹26
2012-06-13 · TA获得超过1208个赞
知道小有建树答主
回答量:695
采纳率:75%
帮助的人:470万
展开全部
其实可以判断的
给你一个例子:
public static void main(String[] s) {
Thread a = new Thread() {
@Override
public void run() {
while (!interrupted()) {
netOperation();
}
}
};
a.start();

if (!a.isInterrupted()) {
//这里判断是否在运行
//如果已经执行完了 你可以再次new出来
System.out.println("is run.");
}
}
bd9006
2012-06-12 · TA获得超过2.5万个赞
知道大有可为答主
回答量:4.8万
采纳率:63%
帮助的人:1.7亿
展开全部
网络操作,另开线程,是对的。

“希望只保留一个新的线程,而不是每次获取都新建一个” 这一点,做不到。就算用变量+判断做到了,也是得不偿失,系统开销也不会变得好。

如果是定时执行的,可以用Timer+TimerTask
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式