我有一个对象SQLDatabaseHelper包含onCreate,onUpgrade和其他方法,但我无法将该对象发送到另一个活动。
答案 0 :(得分:0)
不要在活动之间传递它。
1.使用Service locator pattern (不推荐)
public class Locator {
public SQLDatabaseHelper getDbHelper() {
}
}
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);
}
}