2017-10-10 1 views
0

J'ai une application et je souhaite relancer l'activité de démarrage à un moment donné dans l'application. Normalement, démarrer une nouvelle activité est une tâche assez simple, mais pour une raison quelconque, je ne suis pas en mesure de redémarrer mon SplashActivity. Voici ce que j'ai jusqu'à présent:Impossible de démarrer l'activité de démarrage

Manifest

<activity 
      android:name=".controller.welcome.SplashScreenActivity" 
      android:screenOrientation="portrait" 
      android:theme="@style/AppTheme"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN"/> 
       <category android:name="android.intent.category.LAUNCHER"/> 
      </intent-filter> 
     </activity> 

J'ai aussi essayé d'ajouter ce qui suit intent-filter:

  <intent-filter> 
       <action android:name="android.intent.action.VIEW"/> 
       <category android:name="android.intent.category.DEFAULT"/> 
      </intent-filter> 

et cela n'a pas aidé.

J'essaie de commencer l'activité de mon onCreateView à partir d'un fragment:

@Nullable 
    @Override 
    public View onCreateView(final LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
     if(myStuff == null || mViewModel == null){ 
      Log.d(TAG, "Restarting application...."); 
      try{ 
       Intent intent = new Intent(getContext(), SplashScreenActivity.class); 
       startActivity(intent); 
      } catch (Exception e){ 
       Log.d(TAG, "Problem starting activity: " + e.toString()); 
       e.printStackTrace(); 
      } 

     } 
     ... 

J'ai également essayé d'utiliser getActivity et getApplicationContext pour créer le Intent. Je suis sûr qu'il me manque quelque chose de petit, comme le filtre d'intention, mais je n'arrive pas à le trouver. Toute aide serait grandement appréciée!

+0

Avez-vous une exception lorsque vous essayez de lancer 'SplashScreenActivity'? –

+0

Probablement, vous voulez que votre activité d'écran de démarrage soit aussi celle par défaut. J'ai eu le problème inverse, et je l'ai réparé en définissant mon activité principale comme étant celle par défaut. –

+0

Dans quelle version android vous essayez –

Répondre

-1

Vous pouvez essayer ceci:

Intent intent = new Intent(this, SplashScreenActivity.class); 

Je crois que 'getContext()' diffèrent de 'ce'. Je ne m'en souviens pas très bien.