【发布时间】:2011-05-24 02:03:30
【问题描述】:
我正在寻求帮助,所以我的生活,更重要的是我的用户的生活不会因为我不知道如何正确使用服务和线程而毁掉。
我不是要求冗长的解释,而是更多的确认。如果我错了也没关系。我是来学习的。
如果我理解正确: 1. 服务在后台运行(无 UI)。 2. 一个服务理论上会一直运行直到它自己死掉(我在这里猜测一下) 3.即使主Activity不可见,服务也会继续运行(甚至销毁呢?)
这是我的编码问题。
我已经完成了服务设置和线程。一切都很好,但它只工作一次。我需要它循环并继续检查。完成 run() 后,我该如何告诉它再次 run()?
public class NotifyService extends Service{
private long mDoTask;
NoteThread notethread;
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public void onCreate() {
mDoTask = System.currentTimeMillis();
notethread = new NoteThread();
notethread.start();
}
public class NoteThread extends Thread {
NotificationManager nManager;
Notification myNote;
@Override
public synchronized void start() {
super.start();
//init some stuff
}
@Override
public void run() {
//If it's been x time since the last task, do it again
//For testing set to every 15 seconds...
if(mDoTask + 15000 < System.currentTimeMillis()){
//Take care of business
mDoTask = System.currentTimeMillis();
}
}
}
}
【问题讨论】:
-
阅读本文以更好地了解 Android 中的线程。 developer.android.com/resources/articles/…
标签: android multithreading loops service