Android aktivity bez GUI

hlasů
29

Vytvořil jsem si aktivitu, která je pouze být vypuštěn z odkazu nechci tuto činnost má GUI (pomocí záměru filtru.) - Jen chci, aby to spustit službu a dát oznámení v baru. Snažil jsem se dát záměru filtr pro odkaz na mé služby, ale to nefunguje. Je tam lepší věc, jak to, že bude odpověď na úmysl filtry dělat - nebo mohu jen aby moje činnost nemají GUI?
Omlouvám se, jestli jsem je matoucí, Isaac

Položena 08/02/2009 v 18:29
zdroj uživatelem
V jiných jazycích...                            


4 odpovědí

hlasů
94

Jak jsme již uvedli předchozí odpověď, neměli byste používat přijímač vysílání.

Ve stejné situaci, co jsem udělal, bylo, aby určil, že téma z ní vyplývající:

<activity android:name="MyActivity"
          android:label="@string/app_name"
          android:theme="@android:style/Theme.NoDisplay">
Odpovězeno 25/06/2011 v 09:50
zdroj uživatelem

hlasů
19

Nejlepším řešením se zdá být pomocí BroadcastReceiver. Můžete vytvořit novou BroadcastReceiver, která naslouchá na záměru, aby spustilo oznámení a začít své služby takto:

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));
    }
  }    
}

A můžete registrovat tuto IntentReceiver přímo v aplikaci Zjevná aniž by bylo nutné zahrnout do činností:

<?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> 
Odpovězeno 09/02/2009 v 07:10
zdroj uživatelem

hlasů
4

Nejsem si jistý, jestli by služba fungovat, ale vysílání přijímač rozhodně ne. URL jsou spouštěny pomocí startActivity (). Rozhlasovými přijímači nemůže reagovat na to.

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

FTA: Všimněte si, že ačkoliv Intent třída se používá pro odesílání a přijímání těchto vysílání je Intent vysílání mechanismus zde je zcela oddělený od záměry, které se používají ke spuštění aktivity s Context.startActivity (). Neexistuje žádný způsob, jak by BroadcastReceiver vidět nebo zachycení záměry použít s startActivity (); Podobně, když vysílat Intent, nikdy nenajdeš nebo zahájit činnost.

Odpovězeno 06/08/2010 v 14:49
zdroj uživatelem

hlasů
3

Používat službu. I práce rozhodně. Po klepnutí na tlačítko programu, bylo by to dělat svou práci bez GUI. Použijte pendintgintent ... getService (MySerice.class ....). Poté vytvořte novou třídu MyService prodlužuje třídu služby. Uvnitř MyService.class přepsat onStart () a dělat, co chcete dělat.

Odpovězeno 28/12/2010 v 23:22
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more