0

您好,我成功创建了一个服务

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() 中收到了该日志消息 ..

但问题是我在创建服务时只收到一次该消息

我需要继续打印日志,直到我销毁服务

4

2 回答 2

1

启动一个线程并一次又一次地循环它

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();
于 2012-11-05T05:01:11.090 回答
0

服务是一个后台任务,它一直运行到您停止,其中包含自己的生命周期。其中 Thread 也是一个新任务,它一直运行到您停止或结束代码,其中包含自己的生命周期。

虽然创建 Service onCreate 方法只会调用一次.. 我认为您在LoopThread之间有些混淆..

必须启动一个循环(for 或 while)以连续打印该日志..

或者您可以使用这种类型的递归方法

 public void onCreate() {
 super.onCreate();
 doLog() 
 }

void doLog(){
  Log.d("Service","I Am Security Service Created");
doLog();
}
于 2012-11-05T05:44:33.927 回答