2016-11-27 6 views
0

처음으로 애플리케이션을 설치하는 사용자를위한 환영 튜토리얼을 추가하려고합니다. 그 액티비티는 Manifest의 Main으로 선언해야합니다 (또는 뭔가 빠졌습니까?). 하지만 메인 액티비티 (실제 앱) 이외의 다른 액티비티를 선택하면 앱 단축키 (Android 7.1)가 더 이상 작동하지 않습니다. 그러나 단축키는 사용자 지정 실행 프로그램 (Apex, Nova)에서 여전히 사용할 수 있습니다. 어떤 생각?매니페스트 결과의 주요 활동을 바로 가기로 변경하는 것이 더 이상 작동하지 않습니다.

+0

음, [정적 단축키는'MAIN' /'LAUNCHER' 활동에만 적용됩니다.] (https://developer.android.com/preview/shortcuts.html#static). – CommonsWare

+0

답변 해 주셔서 감사합니다. 전적으로 동의하지만 저를 혼란스럽게하는 것은 (거의 모든) Google 앱에 시작 안내와 시작 프로그램 바로 가기가 있다는 것입니다. 그들이 어떻게했는지 이해할 수 없습니까? – IPS

답변

0

답변 해 주셔서 감사합니다. 당신의 진술은 대답을 찾는데 도움이됩니다. 그래서, 스플래시 화면을 보여준 다음 시작 튜토리얼을 보여주는 앱을 시작하고 싶습니다. 또한, 응용 프로그램은 기본 화면에서 단 한 개의 실행기 아이콘뿐만 아니라 작업 바로 가기를 필요로합니다. 그래서, 첫째, 나는 Manifest.xml 메인으로 시작 화면을 선언

 <activity 
     android:name=".SplashActivity" 
     android:noHistory="true" 
     android:theme="@style/SplashTheme"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
     <meta-data 
      android:name="android.app.shortcuts" 
      android:resource="@xml/shortcuts" /> 
    </activity> 

를 그런 다음에 오신 것을 환영합니다 (튜토리얼) 활동 : 그 후

 <activity 
     android:name=".IntroActivity.WelcomeActivity"/> 

SplashActivity.class에서 처음 실행 확인 :

public static final String FIRST_APP_LAUNCH = "com.ips.test"; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

     if (isFirstAppLaunch()) { 
      setFirstAppLaunch(false); 
      startActivity(new Intent(this, WelcomeActivity.class)); 
     } else { 
      startActivity(new Intent(this, MainActivity.class)); 
     } 
     finish(); 
    } 

private boolean isFirstAppLaunch() { 
    SharedPreferences preferences = this.getPreferences(Context.MODE_PRIVATE); 
    return preferences.getBoolean(FIRST_APP_LAUNCH, true); 
} 

private void setFirstAppLaunch(boolean value) { 
    SharedPreferences preferences = this.getPreferences(Context.MODE_PRIVATE); 
    SharedPreferences.Editor editor = preferences.edit(); 
    editor.putBoolean(FIRST_APP_LAUNCH, value); 
    editor.apply(); 
} 

}

마지막 결과는 원하는대로 있습니다. 스플래시 화면을 사용한 앱 실행 , Welcome 자습서를 실행합니다. 다음 시작은 메인 액티비티 (앱 자체)로 계속 될 스플래시 화면을 트리거합니다. 사용자가 주 화면에서 바로 가기를 클릭하면 바로 가기가 표시되고 Launcher에서는 바로 가기가 하나만 나타납니다.

0

(거의 모든) Google 앱에는 실행기 바로 가기뿐만 아니라 시작 가이드가 포함되어 있습니다. 그들이 어떻게했는지 이해할 수 없습니까?

환영 자습서는 반드시 활동 일 필요는 없습니다. 다른 종류의 프리젠 테이션 (예 : 조각) 일 수 있습니다.

환영하는 자습서는 다른 활동인데도 실행 프로그램 일 필요는 없습니다. 런처 활동은 처음 실행되었음을 감지하고 자습서 활동을 시작했습니다.