응용 프로그램의 시작 활동 변경


386

내 응용 프로그램의 고기와 내장을 만들었지 만 시작점이 될 다른 활동을 추가하고 싶습니다 (로그인 화면 정렬).

몇 가지 질문 :

  • 1 활동을 전환하는 방법 (이 기사를 기반으로 http://www.linux-mag.com/id/7498 ) 에 대해 상당히 괜찮은 핸들을 가지고 있지만 새로운 것을 만드는 방법을 모르겠습니다 ( 일식으로) .

  • 2 새 활동을 만든 후에는 응용 프로그램의 기본 활동으로 어떻게 설정할 수 있습니까? 클래스 이름을 변경할 수 있다고 가정하지만 더 처리 할 수있는 더 우아한 방법이 AndroidManifest.xml있습니까?

답변:


660

예, AndroidManifest.xml파일 을 사용 합니다. 실제로 애플리케이션 매니페스트에 둘 이상의 실행기 활동을 지정할 수도 있습니다. 실행기에 활동을 표시하려면 다음 속성을 매니페스트의 활동에 추가하십시오.

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

49
이 게시물의 내용을 모르는 사람은 프로젝트 루트의 AndroidManifest.xml입니다. Eclipse에서이를 두 번 클릭하고 가장 오른쪽에있는 탭을 클릭하여 XML을 직접 편집 할 수 있습니다.
Austyn Mahoney

3
큰 감사합니다. 따라서 인 텐트 필터 노드를 자식 노드와 함께 포함하면 응용 프로그램이 시작될 때 첫 번째 노드에있는 모든 활동이로드됩니까?
Kyle

4
@Kyle 그것은 실행기 페이지에 해당 활동이 나타나게 할 것입니다.이 인 텐트 필터를 사용하여 여러 활동을 할 수 있습니다. 홈 화면에 여러 아이콘이 있습니다.
Nathan Schwermann

3
이 라인 언급 "OU 실제로 심지어 응용 프로그램에 지정된 하나 개 이상의 실행 활동을 할 수 있습니다를 매니페스트".Which 활동 것이다 처음 실행하면 우리가 하나 개 이상의 활동
Tofeeq 아마드

48
이것은 정답이지만 이상한 점을 발견했습니다. 시작 활동을 다른 것으로 변경하고 원래 시작된 활동이 여전히 존재하면 SDK는 더 이상 응용 프로그램을 시작할 수 없습니다. 어떻게 든 시작 구성의 활동에 대한 참조가 있습니다. 따라서 위의 변경을 수행 한 후에는 "Run"> "Debug Configurations"로 이동하여 프로젝트의 빌드 프로파일을 찾고 "Android"탭을 열고 "Launch"아래에서 시작된 활동을 기본 또는 올바른 것으로 변경해야합니다. : ". 왜 기본값이 선택 해제되어 있는지 잘 모르지만 다시 변경하면 효과가 있습니다.
zeh

91

프로젝트의 루트 폴더에서 AndroidManifest.xml로 이동하여 먼저 실행할 활동 이름을 변경하십시오.

예:

<activity android:name=".put your started activity name here"
          android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

11
Android Studio에서 여전히 작동하지 않는 경우 android 아이콘 (단어 app이있는 아이콘)을 클릭하고 "구성 편집"을 선택한 다음 일반 탭의 활동 섹션에서 "기본 활동 시작"
무기를 선택해야합니다. X

47

Android Studio를 사용 중이고 이전에 다른 활동 을 선택 하여 시작한 경우

를 클릭 Run > Edit configuration한 다음 기본 활동 실행 이 선택되어 있는지 확인하십시오 .

기본 활동 시작


AndroidManifest.xml에 실행기에 대한 의도 필터가없는 경우 이것이 해결책입니다.
Amir Fazwan

1
이것은 Eclipse에도 적용됩니다. 의도 필터 만 지정하는 것만으로는 충분하지 않습니다. 인 텐트 필터는 APK가 사용자가 직접 실행하는 경우에 사용되지만 APK가 Eclipse에서 실행되면이를 설치하여 특정 활동을 시작하려고합니다. 이 특정 활동은 "프로젝트 속성"(프로젝트를 마우스 오른쪽 버튼으로 클릭)-> 실행 / 디버그 설정에서 지정됩니다.
Iker Jamardo Zugaza

이것은 놀랍습니다! 팁 주셔서 감사합니다
Rafael Oliveira

30
 <application
    android:icon="@drawable/YOUR_ICON"    <!-- THIS ICON(IMAGE) WILL BE SHOWN IN YOUR APPS -->
    android:label="MY APP NAME " >    <!-- HERE LABEL(APP NAME) -->
    <activity
        android:name=".application's starting activity"  <!-- (.)dot means current dir, if your activity is in another package then give full package name ex: com.xxx.Activity  -->
        android:label="LABEL FOR ACTIVITY "
        android:screenOrientation="portrait" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

18

아래 지침을 따르십시오.

1 :) AndroidManifest.xml파일을여십시오.

2 :) 아래와 같이 주요 활동을하려는 활동 코드로 이동하십시오.

SplashScreen을 주요 활동으로 만들고 싶습니다.

<activity
    android:name=".SplashScreen"
    android:screenOrientation="sensorPortrait"
    android:label="City Retails">
</activity>

3 :) 이제 다음과 같은 활동 태그 사이에 아래 코드를 복사하십시오.

<activity
    android:name=".SplashScreen"
    android:screenOrientation="sensorPortrait"
    android:label="City Retails">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

새로 추가 된 행이 다른 활동 태그와 연결되어 있지 않은지도 확인하십시오.


17

이것은 쉽게 고칠 수 있습니다.

  • 실행기 활동에 대한 변경 사항은 디버그 구성 에도 저장됩니다 .
  • 설정으로 이동하여 Run > Debug Configurations편집하십시오.
  • 거기에서 비슷한 설정도 인 IntelliJ 에서 Run > Edit Configurations선택 실행의 기본 활동 과는 더 이상 이런 식의 설정 저장.

14

간단 해. Manifest파일 에서이 작업을 수행하십시오 .

<activity
    android:name="Your app name"
    android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.HOME" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
</activity>

1
당신은 제거해야합니다 <카테고리는 안드로이드 : 이름 = "android.intent.category.HOME"/>
Behrouz.M

2
<category android:name="android.intent.category.DEFAULT" />, 그것이 바로 여기서 일하는 것
1111161171159459134

1
android.intent.category.HOME기본 실행기가 대체되는 키오스크 모드 스타일 응용 프로그램에서 사용됩니다. 런처를 바꾸지 않고 이것을 사용하면 SystemUI를 시작하는 동안 사용할 런처를 묻는 프롬프트가 표시됩니다. 또한보십시오 : stackoverflow.com/questions/22911156/…
CJBS

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

5

AndroidManifest.xml 파일로 이동하여 다음과 같이 추가하십시오.

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

그런 다음 Android 프로젝트를 저장하고 실행하십시오.


3

이것을 android:exported="true"매니페스트 파일에서 액티비티를 시작하려고합니다.

 <activity
      android:name=".activities.activity.MainActivity"
      android:windowSoftInputMode="adjustPan"
      android:exported="true"/>
  <activity

이 활동의 ​​자바 파일을 열고 마우스 오른쪽 버튼을 클릭 한 다음 '주 활동'실행을 클릭하십시오.

또는

이 활동의 ​​Java 파일을 열고 Ctrl+ Shift+를 누르십시오 F10.


이것이 어떤 영향을 미칩니 까? 방금 시작?
chia yongkang

2

최근 프로젝트에서 AndroidManifest.xml의 기본 활동을 다음과 같이 변경했습니다.

<activity android:name=".MyAppRuntimePermissions">
</activity>

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

Android Studio 3.6에서; 이 깨진 것 같습니다. 예제 응용 프로그램에서이 기술을 사용했지만이 실제 응용 프로그램에서이 기술을 사용하면 문제가 해결됩니다. IDE는 다시 한 번보고합니다.

앱 실행 중 오류 : 기본 활동을 찾을 수 없습니다.

IDE가 여전히 툴바의 "앱 실행"공간에 구성 오류를 표시했습니다 (이 스크린 샷의 노란색 화살표)

"앱 실행"구성 오류

이 오류를 해결하기 위해 프로젝트를 여러 번 다시 빌드하고 마지막으로 File >> "Invalidate Cache / Restart"을 시도했습니다 . 이것은 도움이되지 않았습니다. 응용 프로그램을 실행하려면 "구성 편집" 을 수행하고 기본 활동 대신 특정 활동을 가리켜 야했습니다.

구성 편집 대화 상자

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.