代码之家  ›  专栏  ›  技术社区  ›  Ahmed Abdelmeged

优化启动屏幕内存

  •  1
  • Ahmed Abdelmeged  · 技术社区  · 8 年前

    但我注意到,即使我完成了活动,内存使用量也增加了很多,有背景的splash和没有背景的splash之间的内存使用量有很大差异。

    有什么解决办法吗?

    splash没有背景图像时的内存捕获

    enter image description here

    enter image description here

    splash活动的代码

    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();
            }
        }
    }
    

    <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>
    
    1 回复  |  直到 8 年前
        1
  •  3
  •   Leandro Ocampo    8 年前

    你应该把你的绘图放在特定的文件夹中,以获得你的图像所使用的分辨率。

    link 将为您提供更多信息。

    在这里面 link 您将获得不同设备的信息。