Android-Aktivität ohne GUI

Ich habe eine Aktivität erstellt, die nur von einem Link gestartet werden soll (mit einem Absichtsfilter). Ich möchte nicht, dass diese Aktivität eine GUI hat – ich möchte nur, dass sie einen Service startet und eine Benachrichtigung in die Leiste setzt. Ich habe versucht, die Absicht Filter für den Link in meinem Service, aber das funktioniert nicht. Gibt es eine bessere Sache, dies zu tun, die auf Absichtsfilter antworten wird – oder kann ich einfach meine Tätigkeit nicht über eine GUI?
Sorry, wenn ich verwirrend bin, Isaac

  • Hinzufügen einer Schaltfläche zu einem SlidingDrawer-Handle?
  • Android Bitmap auf Imageview setzen
  • Android NDK __android_log_print Funktion andLogCat
  • Transliteration von Hindi auf Englisch auf Android ohne Google API
  • GL Wallpaper Beispiel zeigt nur grünen Bildschirm in Emulator, aber es funktioniert im Gerät
  • Wie kann man sich ändern ändern im Listenelement Layout Verhalten ändern zwischen sdk 17 und 18?
  • Xamarin ZipAlign nicht gefunden
  • Kann nicht auf recceive () im boot abgeschlossenen Empfänger debuggen
  • Wie lese und schreibe UTF-8 auf Festplatte auf dem Android?
  • Unbefriedigtlinkerror OpenALPR Testprojekt für Android
  • Android Studio nach der Aktualisierung zum Erstellen von Tools 19.1.0
  • Casting ein C ++ langer Typ zu einem JNI jlong
  • 4 Solutions collect form web for “Android-Aktivität ohne GUI”

    Ihre beste Wette scheint, einen BroadcastReceiver . Sie können einen neuen BroadcastReceiver erstellen, der auf die Absicht hört, um Ihre Benachrichtigung auszulösen und Ihren Service wie folgt zu starten:

     public class MyIntentReceiver extends BroadcastReceiver { @Override public void onReceive(Context _context, Intent _intent) { if (_intent.getAction().equals(MY_INTENT)) { // TODO Broadcast a notification _context.startService(new Intent(_context, MyService.class)); } } } 

    Und du kannst diesen IntentReceiver direkt in der Anwendung Manifest registrieren, ohne ihn in eine Aktivität aufnehmen zu müssen:

     <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.domain.myapplication"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <service android:enabled="true" android:name="MyService"></service> <receiver android:enabled="true" android:name="MyIntentReceiver"> <intent-filter> <action android:name="MY_INTENT" /> </intent-filter> </receiver> </application> </manifest> 

    Wenn Sie eine vorherige Antwort wiederholen, sollten Sie keinen Rundfunkempfänger verwenden.

    In der gleichen Situation, was ich tat, war, das Thema so zu erklären:

     <activity android:name="MyActivity" android:label="@string/app_name" android:theme="@android:style/Theme.NoDisplay"> 

    Ich bin mir nicht sicher, ob ein Service funktionieren würde, aber ein Broadcast-Receiver würde definitiv nicht. Url wird mit startActivity () gestartet. Broadcast-Empfänger können nicht darauf antworten.

    http://developer.android.com/reference/android/content/BroadcastReceiver.html

    FTA: Beachten Sie, dass, obwohl die Intent-Klasse zum Senden und Empfangen dieser Broadcasts verwendet wird, der Intent-Broadcast-Mechanismus hier völlig getrennt von Intents ist, die verwendet werden, um Aktivitäten mit Context.startActivity () zu starten. Es gibt keinen Weg für einen BroadcastReceiver zu sehen oder zu erfassen Intents verwendet mit startActivity (); Ebenso, wenn du eine Absicht sendest, wirst du nie eine Aktivität finden oder anfangen.

    Benutzen Sie Service. Ich arbeite definitiv. Wenn du auf das Programm klickst, würde es seine Arbeit ohne GUI machen. Verwenden Sie pendintgintent … getService (MySerice.class ….). Erstellen Sie dann eine neue Klasse MyService, die die Service-Klasse erweitert. Innerhalb von MyService.class, override onStart () und tu, was du tun möchtest.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.