2017-06-08 3 views
0

I Android 4.4 wurde gezielt und begann einen Dienst wie dieseXamarin.Android: Start eine neue Absicht

start.Click += delegate { 
    StartService(new Intent("com.xamarin.LocationService")); 
    start.Enabled = false; 
    stop.Enabled = true; 
}; 

und alles hat gut funktioniert. Jetzt bin ich Targeting 6.0 und finde von this thread, dass dies nicht sicher ist, und ich soll dies tun:

Intent serviceIntent = new Intent(context,MyService.class); 
context.startService(serviceIntent); 

aber ich kann nicht herausfinden, was die Argumente für ‚neues Intent()‘ sein sollen. Der Klassenname lautet 'LocationActivity', aber wenn ich dies tue, kompiliert OK

, aber der Dienst startet nicht tatsächlich.

Die deutliche Antwort in diesem Thread schlägt auch diese

Intent bi = new Intent("com.android.vending.billing.InAppBillingService.BIND"); 
bi.setPackage("com.android.vending"); 

aber wenn ich versuche, dass ich finde, dass ‚Intent keine Definition für setPackage enthält‘.

Also, kann mir hier jemand mit einer Lösung helfen? Danke im Voraus.

Antwort

1

Wenn Sie eine Aktivität, die Sie von Startservice zu StartActivity StartActivity und nicht dem Startservice Dann nutzt diese aber ändern verwenden müssen, starten.

Von

serviceIntent = new Intent(this, typeof(LocationActivity)); 
context.startService(serviceIntent); 

Um

serviceIntent = new Intent(this, typeof(LocationActivity)); 
context.StartActivity(serviceIntent); 
+0

Ah! Ich möchte einen Dienst starten, keine Aktivität. Also sollte mein Argument der Typ des Dienstes sein, den ich starten möchte, _nicht_ die Art der Aktivität, von der aus gestartet wird !. Ihre Antwort führte mich also indirekt zur Lösung: 'neue Absicht (this, typeof (LocationService))' – quilkin

Verwandte Themen