У меня есть сервисный компонент (общая задача для всех моих приложений), который может быть вызван любым из приложений. Я пытаюсь получить доступ к объекту службы из всех действий, я заметил, что тот, который создал службу [startService (intent)], имеет правильную информацию. Но отдых не получает необходимой информации. Мой код, как показано ниже:
// Activity.java
public void onCreate(Bundle savedInstanceState) {
...
Intent intent = new Intent (this.context, Service.class) ;
this.context.startService(intent) ;
this.context.bindService(intent, this, Context.BIND_AUTO_CREATE) ;
...
String result = serviceObj.getData() ;
}
public void onServiceConnected(ComponentName name, IBinder service) {
serviceObj = ((Service.LocalBinder)service).getService();
timer.scheduleAtFixedRate(task, 5000, 60000 ) ;
}
// Service.java
private final IBinder mBinder = new LocalBinder();
public class LocalBinder extends Binder {
Service getService() {
return Service.this;
}
}
public void onCreate() {
super.onCreate();
context = getApplicationContext() ;
}
public void onStart( Intent intent, int startId ) {
... some processing is done here...
}
public IBinder onBind(Intent intent) {
return mBinder;
}
Если я вызову startService (намерение). он создает новый сервис и работает параллельно с другим сервисом.
Если я не вызываю startService (намерение), serviceObj.getData () возвращает нулевое значение.
Может ли кто-нибудь просветить меня, где я ошибся.
Любой указатель будет очень полезен ..
Спасибо и всего наилучшего,
Вини