사용자가 앱을 사용하지 않아도 영원히 계속 실행해야하는 (스마트 시계에서) 서비스를 만들려고합니다. 주된 목적은 음성 인식을 위해이 서비스를 사용하는 것입니다. 따라서 사용자가 특정 단어를 말할 때마다 앱은 Google 음성처럼 응답 할 수 있어야합니다.서비스를 android wear에서 영원히 실행하는 방법
그러나 테스트 목적으로 로그에 정수를 인쇄하지만 한 번만 실행됩니다. 그건 서비스가 영원히 돌아가고 있지 않다는 것을 의미합니다.
내 서비스 코드 :public class VoiceService extends Service {
private IBinder mBinder = new VoiceBinder();
int i = 1;
public VoiceService() {
}
@Override
public void onCreate() {
super.onCreate();
updateLog();
}
public void updateLog() {
++i;
Log.v("DATA", Integer.toString(i));
}
@Override
public IBinder onBind(Intent intent) {
// TODO: Return the communication channel to the service.
return mBinder;
}
//inner helper class
public class VoiceBinder extends Binder {
//constructor
VoiceService getService() {
return VoiceService.this;
}
}
}
내 MainActivity 번호 :
serviceConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
VoiceService.VoiceBinder binder = (VoiceService.VoiceBinder) iBinder;
iBinder = (IBinder) binder.getService();
MainActivity.this.voiceService = ((VoiceService.VoiceBinder)iBinder).getService();
}
@Override
public void onServiceDisconnected(ComponentName componentName) {
voiceService = null;
}
};
//bind service
bindService(new Intent(this, VoiceService.class), serviceConnection, getApplicationContext().BIND_AUTO_CREATE);
startService(new Intent(this, VoiceService.class));
AndroidManifest를 :
<service
android:name=".VoiceService"
android:enabled="true"
android:exported="false">
</service>
내 출력 :
12-20 22:27:20.307 23624-23624/? V/DATA: 2
은 당신이 생각하게를 그것은 한 번 이상 실행됩니까? –
백그라운드에서 일부 코드를 실행하는 서비스 인 경우이 코드를 실행하면 안됩니까? – Nix
서비스의 어느 부분이 영원히 계속 될 것이라고 생각하십니까? 확실히 onCreate는 서비스가 처음 생성 될 때만 호출됩니다. –