Я пытаюсь создать сервис (в интеллектуальных часах), который должен работать вечно, даже если пользователь не использует приложение. Основная цель - использовать услугу распознавания речи. Поэтому всякий раз, когда пользователь говорит конкретное слово, приложение должно реагировать так же, как голос Google.Как запустить службу в android wear forever
Однако для целей тестирования я печатаю целое число в журнале, но оно выполняется только один раз. это означает, что служба не работает навсегда.
Мой код услуги:
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, который вызывается только при первом создании службы. –