提问者:小点点

闪屏漏内存怎么修复?


我的闪屏内存泄漏,有人能告诉我如何解决这个问题吗?

public class SplashActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_splash);

    new InnerClass(SplashActivity.this).loadNext();
}

private static class InnerClass {
    private final WeakReference<Activity> weakReference;

    private InnerClass(Activity activity) {
        this.weakReference = new WeakReference<>(activity);
    }

    private void loadNext() {
        Activity context = weakReference.get();
        if (context != null) {
            Timer timer = new Timer();
            timer.schedule(new TimerTask() {
                @Override
                public void run() {
                    context.startActivity(new Intent(context, NavigationActivity.class));
                    context.finish();
                }
            }, 2000);
        }
    }
}

}


共1个答案

匿名用户

WeakReference.get()方法移动到Run()方法中。 请尝试以下内容:

private void loadNext() {
            Timer timer = new Timer();
            timer.schedule(new TimerTask() {
                @Override
                public void run() {
                    Activity context = weakReference.get();
                    if (context != null) {
                    context.startActivity(new Intent(context, NavigationActivity.class));
                    context.finish();
                   }
                }
            }, 2000);
         }