J'ai créé un écran de démarrage, puis j'ai commencé l'activité comme d'habitude.Optimiser la mémoire de l'écran de démarrage
mais j'ai remarqué que l'utilisation de la mémoire a beaucoup augmenté même si j'ai terminé l'activité et une grande différence dans l'utilisation de la mémoire entre le splash avec un arrière-plan et celui sans arrière-plan.
Une solution pour cela?
une capture de la mémoire lorsque splash n'a pas d'image de fond
une capture de la mémoire lorsque splash a une image d'arrière-plan
le code pour le démarrage activité
public class SplashActivity extends AppCompatActivity {
/**
* To get ride of the activity reference to avoid memory leaks
*/
private static WeakReference<SplashActivity> mActivity;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
mActivity = new WeakReference<>(this);
//delay for 2 seconds and start the home activity
Completable.complete()
.delay(2, TimeUnit.SECONDS)
.doOnComplete(this::startHomeActivity)
.subscribe();
}
private void startHomeActivity() {
if (mActivity.get() != null) {
Activity activity = mActivity.get();
Intent homeIntent = new Intent(activity, HomeActivity.class);
startActivity(homeIntent);
activity.finish();
}
}
}
et définir le thème au manifeste
<style name="splashScreenTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowBackground">@drawable/zamen_splash</item>
<item name="colorPrimaryDark">@color/splash_color_dark</item>
</style>
Qu'en est-il de la création avec fragment. beaucoup plus léger –
Utilisez-vous une image comme arrière-plan pour cette activité? "zamen_splash" pouvez-vous me dire la résolution de ce dessinable? –
La taille de l'image? –