2016-07-11 11 views
9

Na przykład, mam kilka działań w ramach jednej aplikacji, i aby zobaczyć interfejs użytkownika niektórych działań, muszę uruchomić pewne działanie, które nie jest programem uruchamiającym aplikację.Jak uruchomić określoną aktywność w Android Studio?

Jednym z głupich sposobów jest zbudowanie "drzwi" dla tego działania w wyrzutni i wejście do środka od drzwi. Czy istnieje jednak lepszy sposób na uruchomienie określonej aktywności?

+0

chyba zrobić aktywność jako wyrzutni, cant –

+0

Czy można sprawdzić [ta odpowiedź] (http://stackoverflow.com/a/2180283/4281182) –

+0

chcesz uruchomić go z innej aplikacji? !! lub z samego urządzenia? !! –

Odpowiedz

14

Bardzo łatwe. Rozpocznij od wyeksportowania działania, które należy wykonać:

Dodaj android:exported="true" w deklaracji aktywności w manifeście. Jest tak, ponieważ am jest aplikacją zewnętrzną i musisz wyeksportować działania, aby zezwolić na uruchomienie aplikacji zewnętrznej.

Przejdź do "Edycja konfiguracji ..." w menu "Uruchom".

W lewym panelu wybierz swoją aplikację. W prawym okienku, w zakładce "Ogólne", w sekcji "Opcje uruchamiania" znajduje się menu "Uruchom:".

Wybierz "Określona aktywność" i wprowadź nazwę swojej aktywności, tak jak pojawia się w Twoim manifeście.

Możesz utworzyć dowolną liczbę konfiguracji, zgodnie z własnymi preferencjami, na przykład w celu wskazania, które działanie jest uruchamiane.

+0

Testowane, ale nie działa ... Czy testowano? – guo

+0

Nie pamiętam, aby dodać: Twoja aktywność musi być 'android: exported =" true "' – njzk2

+0

Zadziałało. Tak przydatne, dziękuję! – RominaV

1

Jak wspomniano w this answer, można łatwo osiągnąć poprzez nadanie aktywności nazwę działania w manifest.xml z aplikacji:

<activity android:name="Activity3" ... > 
    <intent-filter> 
     <action android:name="com.company.package.FOO"/> 
     <category android:name="android.intent.category.DEFAULT" /> 
    </intent-filter> 
</activity> 

następnie utworzyć następujący intent z dowolnego miejsca w celu uruchomienia działalność ta w szczególności:

startActivity(new Intent("com.company.package.FOO")); 

Po wyjaśnieniu, że działalność ta ma być uruchamiany po pierwsze podczas uruchamiania aplikacji zamiast wyrzutni, można to osiągnąć przez nie ustawienie zawartości aktywności wyrzutni i zamiast stworzyć intencję, że prowadzi działalność Poszukiwany

główną działalność:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    //setContentView(R.layout.activity_layout); // remove this line 

    Intent intent = new Intent(ThisActivity.this, WantedActivity.class); 
    intent.putExtra("EXIT", false); 
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intent); 
} 
+2

To jest "drzwi" sposób, w jaki się odmieniłem – guo

+1

nie ma innej drogi, aktywność wyrzutni będzie działaniem wyrzutni –

3

Używam stabilnej wersji Androida 2.1.2 i istnieje jeden skrót do tego. Just open the activity class you wish to run and right click on coding area, Dostępne są opcje uruchamiania i debugowania określonej aktywności, jak pokazano na poniższym zrzucie ekranu.

przypadku okien użyciu skrótCtrl + przesunięcie + F10 i Macintosh Ctrl + SHIFT + R oznaczają. Przetestowałem to w emulatorze i działa dobrze, nie testowałem w rzeczywistym urządzeniu. Działa tylko dla klasy aktywności i nie zapomnij umieścić kursora w obszarze kodowania, klikając na niego. Nie wiem też, czy ta opcja jest dostępna w starszych wersjach studia Android niż 2.1.2.

enter image description here

+1

Przetestowałem. Jeśli działanie to także program uruchamiający, ten sposób działa dobrze. Jeśli jednak nie, ten sposób nie działa. – guo

+0

Testowałem z działaniem, które nie działa z aplikacją. Uprzejmie spróbuj z inną aktywnością niż program uruchamiający. –

+2

Zgodnie z odpowiedzią njzk2, musisz dodać atrybut "android: exported =" true "do właściwości działania w manifeście, aby działało to w przypadku działania nieobsługującego programu uruchamiającego. – natinusala

1
<activity android:name=".phoneVideo"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 

enter image description here enter image description here

+0

może dodać kilka słów wyjaśnienia, proszę? – RealCheeseLord

+0

dodaj ten kod w pliku mainfest.xml w obszarze pliku, który chcesz uruchomić @RealCheeseLord –

+0

@RealCheeseLord zobacz, jak dodałem w nowym obrazie. Umieszczam ten kod w nazwie działania jako .phoneVideo, który chcę uruchomić najpierw –

Powiązane problemy