S Zander
- Forum-Beiträge: 12
18.08.2013, 20:42:19 via Website
18.08.2013 20:42:19 via Website
Hallo Entwickler,
ich habe mich heute mal mit der Problematik Service beschäftigt, dazu habe ich mir, wie sollte es auch anders sein eine Dummy GPS Service gebastelt.
Wenn ich den Service in onResume() der MainActivity starte beendet sich die Applikation gleich.
wenn ich den Service jedoch in onCreate der MainActivity starte kommt es erst beim Beenden des Programms
zur Fehelermeldung.
eventuell noch die Initalsierung
Macht es für Android so einen Unterschied wann ich einen Service starte ?
ich habe mich heute mal mit der Problematik Service beschäftigt, dazu habe ich mir, wie sollte es auch anders sein eine Dummy GPS Service gebastelt.
1public class gpsService extends Service {
2
3 GpsData gpsData = null;
4
5 private final IBinder gpsBinder = new GpsLocalBinder();
6
7 public class GpsLocalBinder extends Binder {
8 gpsService getService() {
9 return gpsService.this;
10 }
11 GpsData getGpsData (){
12 return gpsData;
13 }
14 }
15
16 @Override
17 public void onCreate () {
18 gpsData = new GpsData(System.currentTimeMillis(), 50.7066272f,7.1152637f,69.746456f);
19 }
20
21 @Override
22 public void onDestroy() {}
23
24 @Override
25 public IBinder onBind(Intent intent) {
26 return gpsBinder;
27 }
28
29 GpsData getGpsData() {
30 return gpsData;
31 }
32}
2
3 GpsData gpsData = null;
4
5 private final IBinder gpsBinder = new GpsLocalBinder();
6
7 public class GpsLocalBinder extends Binder {
8 gpsService getService() {
9 return gpsService.this;
10 }
11 GpsData getGpsData (){
12 return gpsData;
13 }
14 }
15
16 @Override
17 public void onCreate () {
18 gpsData = new GpsData(System.currentTimeMillis(), 50.7066272f,7.1152637f,69.746456f);
19 }
20
21 @Override
22 public void onDestroy() {}
23
24 @Override
25 public IBinder onBind(Intent intent) {
26 return gpsBinder;
27 }
28
29 GpsData getGpsData() {
30 return gpsData;
31 }
32}
Wenn ich den Service in onResume() der MainActivity starte beendet sich die Applikation gleich.
1@Override
2 public void onResume() {
3 connect_gpsService();
4 }
2 public void onResume() {
3 connect_gpsService();
4 }
wenn ich den Service jedoch in onCreate der MainActivity starte kommt es erst beim Beenden des Programms
zur Fehelermeldung.
eventuell noch die Initalsierung
1private gpsService localService;
2 private gpsService.GpsLocalBinder localServiceBinder;
3
4 private GpsData gps_position;
5
6 public ServiceConnection localServiceConnection = new ServiceConnection() {
7 @Override
8 public void onServiceConnected( ComponentName className, IBinder binder) {
9 localServiceBinder = (gpsService.GpsLocalBinder)binder;
10 localService = ((gpsService.GpsLocalBinder) binder).getService();
11 showMessage("GPS Service connected!");
12 }
13
14 @Override
15 public void onServiceDisconnected(ComponentName componentName) {
16 showMessage("GPS Service disconnected!");
17 }
18 };
19public void connect_gpsService () {
20 Intent intent = new Intent(getApplicationContext(), gpsService.class);
21 bindService(intent, localServiceConnection, Context.BIND_AUTO_CREATE);
22 }
2 private gpsService.GpsLocalBinder localServiceBinder;
3
4 private GpsData gps_position;
5
6 public ServiceConnection localServiceConnection = new ServiceConnection() {
7 @Override
8 public void onServiceConnected( ComponentName className, IBinder binder) {
9 localServiceBinder = (gpsService.GpsLocalBinder)binder;
10 localService = ((gpsService.GpsLocalBinder) binder).getService();
11 showMessage("GPS Service connected!");
12 }
13
14 @Override
15 public void onServiceDisconnected(ComponentName componentName) {
16 showMessage("GPS Service disconnected!");
17 }
18 };
19public void connect_gpsService () {
20 Intent intent = new Intent(getApplicationContext(), gpsService.class);
21 bindService(intent, localServiceConnection, Context.BIND_AUTO_CREATE);
22 }
Macht es für Android so einen Unterschied wann ich einen Service starte ?
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.