我的闪屏内存泄漏,有人能告诉我如何解决这个问题吗?
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);
}
}
}
}
将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);
}