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

サービスは、独自のライフサイクルを含む停止するまで実行されるBackGroundタスクです。一方、スレッドは、コードを停止または終了するまで実行される新しいタスクでもあり、独自のライフサイクルが含まれています。

Service onCreateメソッドを作成している間、呼び出されるのは1回だけです。ループスレッドの間に混乱があると思います。

そのログを継続的に印刷するには、ループを開始する必要があります(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 に答える