Java 如何在活动之间传递SQLDatabaseHelper对象?

Java 如何在活动之间传递SQLDatabaseHelper对象?,java,android,Java,Android,我有一个对象SQLDatabaseHelper,它包含onCreate、onUpgrade和其他方法,但我不能将该对象发送到另一个活动。不要在活动之间传递它本身 1.使用 (不推荐) 2.使用像Dagger这样的依赖注入框架。大概是这样的: @Component(modules = {DbModule.class}) public interface AppComponent { @Component.Builder interface Builder { @B

我有一个对象SQLDatabaseHelper,它包含onCreate、onUpgrade和其他方法,但我不能将该对象发送到另一个活动。

不要在活动之间传递它本身

1.使用 (不推荐)

2.使用像Dagger这样的依赖注入框架。大概是这样的:

@Component(modules = {DbModule.class})
public interface AppComponent {

    @Component.Builder
    interface Builder {
        @BindsInstance
        Builder application(Application application);

        AppComponent build();
    }

    void inject(MainActivity mainActivity);
}

@Module
public class DbModule {
    @Provides
    @Singleton
    public static SQLDatabaseHelper dbHelper() {
        //create your helper here
    }
}

public class App extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        Injector.init(this);
    }
}

public class Injector {
    private static AppComponent appComponent;

    public static void init(Application app) {
        appComponent = DaggerAppComponent
                .builder()
                .application(app)
                .build();
    }

    public static AppComponent appComponent() {
        return appComponent;
    }
}

public class MainActivity {
    protected void onCreate() {
        Injector.appComponent().inject(this);
    }
}
@Component(modules = {DbModule.class})
public interface AppComponent {

    @Component.Builder
    interface Builder {
        @BindsInstance
        Builder application(Application application);

        AppComponent build();
    }

    void inject(MainActivity mainActivity);
}

@Module
public class DbModule {
    @Provides
    @Singleton
    public static SQLDatabaseHelper dbHelper() {
        //create your helper here
    }
}

public class App extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        Injector.init(this);
    }
}

public class Injector {
    private static AppComponent appComponent;

    public static void init(Application app) {
        appComponent = DaggerAppComponent
                .builder()
                .application(app)
                .build();
    }

    public static AppComponent appComponent() {
        return appComponent;
    }
}

public class MainActivity {
    protected void onCreate() {
        Injector.appComponent().inject(this);
    }
}