6

Sto usando Facebook sdk nella mia app. Al fine di non mostrare la barra di avanzamento Solo quando il pulsante di Facebook viene cliccato, sto usando:FacebookActivity non ha chiamato finish() su Api 23+

<activity android:name="com.facebook.FacebookActivity" 
      android:configChanges= 
       "keyboard|keyboardHidden|screenLayout|screenSize|orientation" 
      android:theme="@android:style/Theme.NoDisplay" 
</activity> 

Tuttavia, credo che per i dispositivi con api 23+ questo causa un crash:

"com.facebook. FacebookActivity non ha chiamato finitura() prima onResume() completando"

qualcuno ha detto qui: Activity did not call finish? (API 23) scrivendo:

@Override 
protected void onStart() { 
    super.onStart(); 
    setVisible(true); 
} 

nell'attività problematica, che sol visto il problema. Ma dal momento che non posso modificare FacebookActivity, esiste una soluzione alternativa?

risposta

10

Facebook hanno cambiato il loro instructions per la configurazione iniziale del progetto. Basta cambiare il tema per com.facebook.FacebookActivity per @android:style/Theme.Translucent.NoTitleBar.

0

Sede javadoc di windowNoDisplay:

(...) l'attività deve smettere immediatamente senza attendere l'intervento dell'utente (...)

Così eccezione è corretta, il vostro caso d'uso fa non corrisponde a windowNoDisplay.

0

Questo è un bug della piattaforma.

Se avete usato Theme.NoDisplay in una o più attività in vostra applicazione, e non li avete ancora testato su Android 6.0, vi consiglio di farlo presto. Una regressione non documentata su Android 6.0 sostituirà in seguito all'arresto di alcune di queste attività al momento del lancio, se la tua target targetSdkVersion è 23 o successiva.

Vedi questo post del blog: https://commonsware.com/blog/2015/11/02/psa-android-6p0-theme.nodisplay-regression.html