Ich erstelle die App mit einem Vordergrund-Service. Der Dienst wird in einem anderen Prozess und Thread ausgeführt.Anwendungsvariablen im Service
Die Application-Klasse hat ein Array und die öffentliche Methode getArray. Der Dienst kann auf die Anwendung und die Aufrufmethode getArray zugreifen.
App gestartet, Array-Füllung und Service gestartet. Wenn die App das Array ändert, gibt der Dienst das bei der Start-App erstellte Array zurück.
Wie kann ich das Array im Dienst aktualisieren?
auf Service:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if(mThread != null)
mThread.interrupt();
mApplication = (Application) getApplication();
mTaskManager = mApplication.getTaskManager();
TaskArray lTasks = mTaskManager.getAll();
// always return same size
Log.d(mLogTag, "onStartCommand " + lTasks.size());
createThread();
mThread.start();
super.onStartCommand(intent, flags, startId);
return START_STICKY;
}
ERGEBNIS:
ich den Grund des Erhaltens einer Kopie applicaton Objekt in meiner app gefunden wurde. Dies geschieht, weil getApplicationContext() den Kontext des einzelnen globalen Anwendungsobjekts des aktuellen Prozesses zurückgibt.
Für jeden Prozess erstellt eine Kopie des Anwendungsobjekts.
Also Ihre Frage ist, wie Sie Arraylist Werte vom Dienst aktualisieren können? –
Sie können eine Zwei-Wege-Kommunikation zwischen Client-App und Remote-Service mit Messenger –
Piyush Kukadiya haben, was meinst du mit Messenger? –