Android 轮询登录服务
嗨,我成功创建了一个服务Android 轮询登录服务,android,Android,嗨,我成功创建了一个服务 public class Securityservice extends Service { @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return null; } @Override public void onCreate() { super.onCr
public class Securityservice extends Service {
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onCreate() {
super.onCreate();
Log.d("Service","I Am Security Service Created");
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
}
}
我在onCreate()中收到了日志消息
但问题是,在创建服务时,我只收到过一次该消息
我需要一直打印日志,直到我销毁该服务为止启动一个线程并一次又一次地循环它
new Thread(new Runnable() {
public void run() {
while (true) {
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// Your code
}
}
}).start();
服务是一个后台任务,它一直运行到您停止为止,其中包含它自己的生命周期。 其中as线程也是一个新任务,它运行到您停止或结束代码(包含其自身的生命周期)为止 创建服务时,onCreate方法将只调用一次。。 我想你对循环和线程有些混淆 必须启动循环(for或while)才能连续打印该日志 也可以使用这种类型的递归方法
public void onCreate() {
super.onCreate();
doLog()
}
void doLog(){
Log.d("Service","I Am Security Service Created");
doLog();
}
谢谢,现在我的疑问消除了,但是如果我在oncreate()中使用这种类型的递归方法。。当oncreate()函数调用它时,它创建了一个新的服务Yes,您将得到这种类型的错误,因为您正在增加程序的堆大小,因此必须使用代码优化。。